在我的JSF项目中,我正在尝试使用JSF 2.0注释注册java类,而不是在faces-config.xml文件中注册类。
当我在faces-config.xml文件中注册类时,一切正常。但是,当我使用注释注册类时,我在服务器日志中收到以下错误:
WARNING: ApplicationDispatcher[/de.vogella.jsf.card2] PWC1231: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Target Unreachable, identifier 'cardController' resolved to null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:131)
...
WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
javax.el.PropertyNotFoundException: Target Unreachable, identifier 'cardController' resolved to null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:131)
...
我是这些技术的新手,所以非常感谢任何帮助!
当事情不起作用时,以下是我的设置。
CardController.java
@ManagedBean
@SessionScoped
public class CardController {
@ManagedProperty(value="#{card}")
private Card card;
...
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
}
Card.java
@ManagedBean
public class Card {
...
}
面-config.xml中
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
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"
version="2.0">
</faces-config>
我正在使用带有Mojarra 2.0.3-FCS的JSF 2.0,我正在运行与Eclipse Helios集成并使用JDK1.6.0_26的Glassfish 3.1上的所有内容。
仅供参考,这个项目的教程是由Lars Vogel撰写的http://www.vogella.de/articles/JavaServerFaces/article.html#installation。
答案 0 :(得分:1)
如果选择“未发布的服务器模块”选项,则@ManagedBean
不起作用。
双击Tomcat,然后取消选择此选项并重新启动Tomcat。
答案 1 :(得分:0)
建议,使用带有@ManagedBean注释的name属性。
@ManagedBean(name="cardController")