【发布时间】:2012-11-28 19:55:10
【问题描述】:
我有以下 GUI 元素:一个下拉菜单,用于选择是要自己输入文本还是要从预定义的文本中进行选择。
<h:form id="test">
<div>
<h:outputLabel value="Please select:" />
<h:selectOneMenu value="#{myform.selection}">
<f:selectItem itemValue="1" itemLabel="Input text" />
<f:selectItem itemValue="2" itemLabel="Select from predefined texts" />
</h:selectOneMenu>
</div>
<div>
<h:outputLabel value="Your text: " />
<h:inputText value="#{myform.inputText}" rendered="#{myform.selection == 1}" />
<h:selectOneMenu value="#{myform.inputText}" rendered="#{myform.selection == 2}">
<f:selectItem itemValue="11" itemLabel="Preselected text 1" />
<f:selectItem itemValue="22" itemLabel="Preselected text 2" />
</h:selectOneMenu>
</div>
</h:form>
如何正确编程渲染条件?
更新:当表单加载时,1 已经被选中,所以 inputText 被渲染。问题是当我将选择更改为 2 时没有任何反应。我们使用基于 JSF 1.2 的修改后的 JSF 库
【问题讨论】:
-
rendered条件是正确的,但是当用户从第一个selectOneMenu中选择一个值时,您需要使用a4j使组件出现/消失。您使用的是哪个版本的 JSF? -
我想我也可以使用 javascript。 h:selectOneMenu 有 onclick 吗?
-
JavaScript 是在客户端执行的...我想说不可能使用 JavaScript 更改 JSF 属性。
-
你在使用 Richfaces 吗?
标签: jsf