我想为应用程序创建设置面板。该应用程序会将设置值存储到数据库表中。设置面板将用于显示设置和更改值。我想用这种方式表示值:
这样,用户将只能输入固定值。我想更改用户输入自定义值。像这样:
我想使用selectOneMenu
选项创建custom
。当用户选择custom
时,selectOneMenu
将替换为inputText
字段,在此他可以输入自定义值。 SAVE
按钮会将数据保存到数据库中。是否可以在不重新加载页面的情况下进行?也许使用AJAX?
如何实现呢?
最佳答案
每当当前选项等于<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>