faces-config.xml和Target Unreachable

时间:2015-08-01 20:10:13

标签: maven jsf jsf-2 jboss

我有JSF 2.1的maven项目。 IDE是eclipse。服务器是JBoss 7.1.1。我明白了:

  

目标无法访问,标识符' helloBean'解析为null:   javax.el.PropertyNotFoundException:/hello.xhtml @ 14,42   value ="#{helloBean.name}":目标无法访问,标识符' helloBean'   单击**欢迎按钮时解析为null **。

只有在WEB-INF中的项目faces-config.xml文件中存在问题。当我删除此文件并再次运行时,一切正常。那么,这个文件可能有什么问题。

下面是我的ManagedBean:

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    private static final long serialVersionUID = 1L;

    public HelloBean() {}

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void welcome() {
        System.out.println("Welcome");
    }
}

hello.xhtml的一部分

 <h:form>
    <h:inputText value="#{helloBean.name}"></h:inputText>
        <h:commandButton value="Welcome Me" 
        actionListener="#{helloBean.welcome}"></h:commandButton>
</h:form>

我的faces-config文件:

<?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_1.xsd"
   version="2.1">
</faces-config>

和web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">

   <display-name>JavaServerFaces</display-name>

   <!-- Change to "Production" when you are ready to deploy -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

   <!-- Welcome page -->
    <welcome-file-list>
        <welcome-file>faces/hello.xhtml</welcome-file>
    </welcome-file-list>

    <!-- JSF mapping -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map these files with JSF -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
</web-app>

空faces-config.xml文件是否可能禁用我的ManagedBean的注释检测?当我删除它时,一切都很好。

0 个答案:

没有答案