无法使用JSF 2.0注释注册java类



在我的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")

最新更新