我在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。
此外,我已经测试了我之前创建的另一个更复杂的项目,它运行正常:只创建了一个实例。我不明白我错在哪里。
答案 0 :(得分:3)
查看登录bean的托管bean配置(类的注释或faces-config.xml
),特别是其范围。 “无”的范围将具有您正在观察的效果。适当的范围可能是“请求”。