如何在选择特定的selectOneMenu选项时显示inputText?

时间:2012-03-14 19:56:30

标签: java ajax jsf jsf-2 selectonemenu

我想为应用程序创建设置面板。应用程序将设置值存储到数据库表中。设置面板将用于显示设置和更改值。我想以这种方式表示价值观:

enter image description here

enter image description here

这样,用户只能输入固定值。我想对用户进行更改以输入自定义值。像这样:

enter image description here

我想使用选项selectOneMenu创建custom。当用户选择custom时,selectOneMenu将替换为inputText字段,他将在该字段中输入自定义值。 SAVE按钮会将数据保存到数据库中。这可能没有页面重新加载吗?也许用AJAX?

如何实施?

1 个答案:

答案 0 :(得分:3)

当前选项等于<f:ajax>时,使用<h:inputText>显示"custom"

<h:selectOneMenu value="#{bean.type}">
    <f:selectItem itemValue="one" itemLabel="Option one" />
    <f:selectItem itemValue="two" itemLabel="Option two" />
    <f:selectItem itemValue="three" itemLabel="Option three" />
    <f:selectItem itemValue="custom" itemLabel="Define custom value" />
    <f:ajax render="input" />
</h:selectOneMenu>
<h:panelGroup id="input">
    <h:inputText value="#{bean.customType}" rendered="#{bean.type == 'custom'}" required="true" />
</h:panelGroup>