【问题标题】:How to access inputtext binding in jsf如何在 jsf 中访问 inputtext 绑定
【发布时间】:2012-05-24 09:49:27
【问题描述】:

我有以下问题,我无法在任何地方找到解决方案。

我有以下代码:

<h:inputText id="username" value="#{registrationBB.userName}" binding="#{userNameToConfirm}"/>

及以后:

<h:inputSecret id="confirmed-password" value="#{registrationBB.userPasswordConfirmed}">
  <f:validator validatorId="usernameNotInPasswordValidator"/>
  <f:attribute name="username" value="#{userNameToConfirm.value}" />
</h:inputSecret>

inputText 绑定到 #{userNameToConfirm}(它不是任何 backingbean 中的属性),稍后此绑定用于密码验证器。

这一切都很好。

但是,这些字段所在的表单包含一个“重置”按钮,该按钮应该清空表单上的所有字段。

当reset按钮被点击时,registrationBB中的所有属性被清空,调用如下代码:

getViewRoot().getChildren().clear();

但是,用户名永远不会为空,因为它将始终由“#userNameToConfirm”绑定中的值设置。

我的问题是:如何在 faces 后端访问此绑定和删除?

我们使用 jsf 1.2 版。

问候, 阿拉什

【问题讨论】:

    标签: jsf


    【解决方案1】:

    让重置按钮重新加载页面。

    <h:commandButton value="Reset" onclick="location.reload(true)" />
    

    或者通过&lt;navigation-case&gt;&lt;redirect&gt;

    <h:commandButton value="Reset" action="reloadPagename" />
    

    <navigation-rule>
        <navigation-case>
            <from-outcome>reloadPagename</from-outcome>
            <to-view-id>/pagename.jsf</to-view-id>
            <redirect />
        </navigation-case>
    </navigation-rule>
    

    【讨论】:

    • 嗨,BalusC!感谢您的解决方案。一如既往地非常有帮助:) 作为一个附带问题,我只是想知道如何访问绑定的值,如“userNameToConfirm”绑定。有办法吗?还是从服务器端这永远不可能?
    • 你可以做一个userNameToConfirm.resetValue()。但是刷新页面有更简单的解决方案:)
    猜你喜欢
    • 2014-11-02
    • 2013-09-12
    • 2017-11-25
    • 2011-01-19
    • 2011-06-15
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多