我想实现这样的功能,当我选择一个单选按钮时,它必须显示一个文本框,否则它应该处于隐藏状态。我写了这样的代码
<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>
在这里,如果我选择Manager单选按钮,它应该显示outputLabel和inputeText。 Bean Class中有getter和setter。
有什么不对吗?
答案 0 :(得分:0)
而不是代码中的输入行,
我建议你把它放在另一个表格中,使用render =&#34;#{LoginBean.isManager}&#34;,取出你在h标签中渲染的两个表格。
复制此表单时没有任何子标记,此表单附带render =&#34;#{!LoginBean.isManager}&#34;
在你的Bean中,使用getter setter声明new boolean isManager。
在处理您的无线电选择表单时,Bean会根据您的选择将isManager设置为false或true,并根据您的isManager渲染表单。
我用这种方式快速添加&#34;编辑&#34;形成。它没有POSTBACK。我希望这个对你有用!
PS:您可能只需要将渲染设置为tr标签而不是h标签。