在我的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集成的Glassfish 3.1上运行一切,并使用JDK1.6.0_26。
仅供参考,这个项目的教程是http://www.vogella.de/articles/JavaServerFaces/article.html#installationLars Vogel。
如果选择"服务器模块不发布"选项,则@ManagedBean
不工作。
双击Tomcat,然后取消选择此选项并重新启动Tomcat。
建议,将name属性与@ManagedBean注释一起使用。
@ManagedBean(name="cardController")