【问题标题】:JSF 2.0 Edit user szenarioJSF 2.0 编辑用户场景
【发布时间】:2011-09-04 13:09:47
【问题描述】:

我编写了一个小应用程序,您可以在其中注册和编辑您的数据。对于真实性,我使用了一个名为 Authenticity 的 bean 类。此类包含 Customer 的对象(它是一个数据库实体)以及登录和注销的方法。

现在我创建了一个用于编辑用户的页面:一个包含许多 inputTexts 的表单,其值为authentity.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?

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    我将使用一个完全独立的视图范围 bean,它包含代表已登录用户的实体的全新副本。只有当表单编辑保存成功后,才能替换当前登录的用户(表单bean可以直接访问@ManagedProperty)。

    如果您在表单中重复使用相同的实体;想象一下,您正在对某些字段进行 ajax 更新,然后取消/关闭表单。当前登录的用户将在会话的剩余部分中仍然具有“错误”字段值。这是不正确的。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多