ManagedBeans未被自动发现

时间:2014-01-15 15:09:56

标签: jsf jsf-2 managed-bean

我使用JSF有一个奇怪的行为:我用@Managedbean注释的类在视图中不可见/不可用,我不能通过EL调用它们。

然后我创建了一个faces-config.xml文件并显式声明了托管bean,这样就可以调用它们。

他们没有被发现的问题是什么?

这是我的相关代码:

web.xml:

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

<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>

托管Bean:

import javax.faces.bean.ManagedBean;
@ManagedBean
public class LanguagesCountryLocaleController {

    public String sayHello(){ 
        return "Just to make it short!"; 
    }
}

faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">

<managed-bean>
    <managed-bean-name>languagesCountryLocaleController</managed-bean-name>
    <managed-bean-class>com.fry.starter.commands.manager.content.LanguagesCountryLocaleController</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean> 

</faces-config>

和xhtml文件中的调用:

#{languagesCountryLocaleController.sayHello()}

感谢您的帮助!

0 个答案:

没有答案
相关问题