Primefaces @managedBean

时间:2011-10-24 09:21:15

标签: jsf-2 primefaces

我正在使用3.0 M3。当我在faces-config.xml中声明我的托管bean时,它工作得很好,但是当我尝试使用相同的代码时 注释@Managed bean @Request Scoped,它表示目标UN-reachable。

我也试过2.2,但它再次说同样的问题。 我正在使用玻璃鱼v3

@ManagedBean 
@SessionScoped
public class Profile implements Serializable{


    private String userId;
    private String password;
    private int code;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    private String name;

    public String getName() {
        return name;
    }

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

以下是我如何称呼他们

<h:form>        
    <p:panel style="margin-top: 200px;margin-left: 300px;margin-right: 300px;" header="Welcome">
        <h:outputText value="Your Code ? "/>
        <h:inputText required="true" requiredMessage="Enter user id" value="#{Profile.userId}"/>
        <h:outputText  value="Password "/>
        <h:inputSecret required="true" requiredMessage="Enter password id" value="#Profile.password}"/>
        <h:commandButton action="#{Profile.varify}" value="Next"/>
    </p:panel>   
</h:form>

4 个答案:

答案 0 :(得分:2)

配置文件应为小写,并检查密码行上的语法

答案 1 :(得分:2)

如果不使用@ManagedBean批注的name属性,则必须引用第一个字母转换为小写的bean。

来自@ManagedBean javadoc

  

name()属性的值被认为是   托管bean名称。如果未指定name属性的值   或者是空字符串,托管bean名称来源于take   完全限定类名的非限定类名部分   并且将第一个字符转换为小写。例如,如果   ManagedBean批注位于具有完全限定类的类上   名为com.foo.Bean,注释上没有name属性,   managed-bean-name被认为是bean。完全合格的班级   此注释所附加的类的名称将被视为   托管bean类。

答案 2 :(得分:0)

因为您使用的是jsf2

您可以执行以下操作 - 为bean命名...

@ManagedBean(name="Profile")
@SessionScoped
public class Profile implements Serializable{
}

答案 3 :(得分:0)

检查@SessionScoped的导入包,它必须是import javax.faces.bean.SessionScoped; 并且还给ManageBean @ManagedBean(name =“Profile”)

命名