我正在尝试使用JSF 2.0,JBoss AS 7.0创建一个简单的JSF hello世界 这是我的xhml文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Page 1</title>
</h:head>
<body>
<f:view>
<h:outputLabel value="Hello Stock Manager Hello JSF again" />
<br/>
<h:outputLabel value="Tester Bean : #{testerBean.message}" />
</f:view>
</body>
</html>
这是托管bean类:
package prv.stockmanager.web.beans;
public class TesterBean {
private String message = "This is a message";
public TesterBean() {
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
这是faces-config(在web-inf中):
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<managed-bean>
<managed-bean-name>testerBean</managed-bean-name>
<managed-bean-class>prv.stockmanager.web.beans.TesterBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property> <property-name>message</property-name>
<property-class>java.lang.String</property-class>
<value/>
</managed-property>
</managed-bean>
</faces-config>
如果我删除对托管bean的调用,页面工作正常。但是当我调用托管bean时,我得到了这个:
无法找到Bean或属性类prv.stockmanager.web.beans.TesterBean for managed bean testerBean。 在com.sun.faces.mgbean.BeanManager.create(BeanManager.java:265)[jsf-impl-2.1.3-b02-jbossorg-2.jar:2.1.3-SNAPSHOT] at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)[jsf-impl-2.1.3-b02-jbossorg-2.jar:2.1.3-SNAPSHOT]
是因为JBoss AS 7.0使用的是JSF 2.1 jar文件吗?我应该使用JSF 2.1吗?如何改变?
答案 0 :(得分:1)
问题已解决,我发现Eclipse没有生成类。我禁用了自动构建,它工作正常。我正在使用的JBoss Studio应该有问题。