JSF为facelets中的每个el表达式创建相同类的新实例

时间:2011-01-19 19:13:11

标签: jsf-2

我在Web应用程序项目中有一个登录页面:

<h:form>
    <h:messages />
    <h:inputText label="Username" value="#{login.username}" required="true" />
    <h:inputSecret label="Password" value="#{login.pass}" required="true" />
    <h:commandButton value="Accedi" action="#{login.check()}"  />
</h:form>

当我提交表单时,jsf创建了三个Login类实例(我已经注意到使用调试器的这种行为)。这样我就无法在Login.check()方法中使用用户名和密码:它们都是null。

此外,我已经测试了我之前创建的另一个更复杂的项目,它运行正常:只创建了一个实例。我不明白我错在哪里。

1 个答案:

答案 0 :(得分:3)

查看登录bean的托管bean配置(类的注释或faces-config.xml),特别是其范围。 “无”的范围将具有您正在观察的效果。适当的范围可能是“请求”。