【问题标题】:JSF onclick radio button hide/show textboxJSF onclick 单选按钮隐藏/显示文本框
【发布时间】:2017-12-14 07:57:18
【问题描述】:

我想实现这样的功能,当我选择一个单选按钮时,它必须显示一个文本框,否则它应该处于隐藏状态。我写了这样的代码

          <tr>
            <th><label for="selection">Register as ::</label></th>
            <td>        <h:selectOneRadio id="selection" value="#{LoginBean.role}" label="Action" required="true">
                            <f:selectItem itemValue="Customer" itemLabel="Customer" />
                            <f:selectItem itemValue="Manager" itemLabel="Manager" />
                            <p:ajax process="console" update="@form" />
                        </h:selectOneRadio>
            </td>
          </tr>

          <tr>
            <th><h:outputLabel value="Enter your Fee ::" rendered="#{LoginBean.role eq 'Manager'}"></h:outputLabel></th>
            <td><h:inputText id="fee" value="#{LoginBean.fee}" rendered="#{LoginBean.role eq 'Manager'}" required="true" requiredMessage="Fee is required." class="form-control"  a:placeholder="200.00" ></h:inputText></td>
          </tr>

在这里,如果我选择管理器单选按钮,它应该显示 outputLabel 和 inputeText。 Bean类中有getter和setter。

有什么问题吗?

【问题讨论】:

    标签: html jsf


    【解决方案1】:

    而不是代码中的输入行, 我建议您将其放入另一种形式,使用 render="#{LoginBean.isManager }",取出在您的 h 标记中呈现的两者。 复制此表单,不带任何子标签,此表单带有 render="#{!LoginBean.isManager }"
    在您的 Bean 中,使用 getter setter 声明新的 boolean isManager。 当您处理单选表单时,Bean 将根据您的选择将 isManager 设置为 false 或 true,并根据您的 isManager 呈现表单。 我用这种方式快速添加“编辑”表单。它可以在没有 POSTBACK 的情况下工作。我希望这个对你有用!
    PS:你可能只需要将render设置为tr标签而不是h标签。

    【讨论】:

    • 这里呈现错误="#{!LoginBean.isManager }",例如“无法将表达式运算符应用于方法绑定”。我不明白它什么时候会设置 isManager 值。我必须在 Manager 单选按钮中写一些东西。我说的对吗?
    • 我提供的渲染属性只是一个示例实例,isManager 属性应该与指定 bean 中的布尔属性匹配。对于我的例子,在 bean 中,我有:private boolean isManager 带有 getter setter。在你的例子中,我假设 isManager 现在是一个 getter 方法(作为 isManager(){...} 而不是 isManager; 不应该在 JSF 页面上使用,因为它无效。
    • 这是“我的 bean”pastebin.com/EnUv1whT 的一个示例,我只是一个新的 Java 新手,我的方法可能没有经过优化,但这在我的培训项目中确实有效。
    猜你喜欢
    • 2019-01-20
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 2014-05-12
    • 2015-01-07
    • 2013-01-20
    相关资源
    最近更新 更多