JSF 2.0编辑用户szenario
我编写了一个小应用程序,您可以在其中注册和编辑您的数据。为了真实性,我使用了一个名为Authenticity的bean类。这个类包含Customer(它是一个数据库实体)的对象以及登录和注销的方法。JSF 2.0编辑用户szenario
现在我创建了一个用于编辑用户的页面:一个包含许多inputText的表单,其值为authenticity.curUser./(properties)。它看起来像这样:
<h:form> <h:panelGrid columns="2" cellpadding="4px" width="600">
<h:outputText value="firstname:" />
<h:inputText value="#{authenticity.curUser.firstname}"/>
<h:outputText value="lastname:"/>
<h:inputText value="#{authenticity.curUser.lastname}" />
<h:outputText value="street:"/>
<h:inputText value="#{authenticity.curUser.street}" />
<h:outputText value="housebumber"/>
<h:inputText value="#{authenticity.curUser.housenumber}" />
<h:outputText value="Zip:"/>
<h:inputText value="#{authenticity.curUser.zip}" />
<h:outputText value="City:"/>
<h:inputText value="#{authenticity.curUser.city}" />
<h:outputText value="Land"/>
<h:inputText value="#{authenticity.curUser.country}" />
<h:outputText value="email:"/>
<h:inputText value="#{authenticity.curUser.email}" />
<h:outputText value="password:"/>
<h:inputSecret value="#{authenticity.curUser.password}" />
<h:commandButton action="#{authenticity.editUser}" value="Edit" />
</h:panelGrid>
</h:form>
我现在的问题是是否有更好的解决方案来解决这个问题。 AuthenticityBean应该真的能够编辑用户吗?或者我应该创建一个额外的bean?
回答:
我会使用一个完全独立的视图范围的bean,它包含代表登录用户的实体的全新副本。只有当表单被成功编辑并保存后,才能替换当前登录的用户(表单bean可以作为@ManagedProperty
访问它)。
如果您在表单中重复使用同一个实体,想象你是ajax更新一些字段,然后取消/关闭表单。当前登录的用户将在会话的剩余部分中仍然存在“错误”字段值。这是不正确的。
以上是 JSF 2.0编辑用户szenario 的全部内容, 来源链接: utcz.com/qa/257874.html