我想在JSF hLselectOneMenu中将String转换为Integer。
<h:selectOneMenu id="rowsPerPage" value="#{AccountsController.rowsPerPage}" converter="javax.faces.Integer" maxlength="3">
<f:selectItem itemValue="10" itemLabel="10" />
<f:selectItem itemValue="50" itemLabel="50" />
<f:selectItem itemValue="100" itemLabel="100" />
<f:selectItem itemValue="500" itemLabel="500" />
<f:selectItem itemValue="094332" itemLabel="Custom" />
<f:ajax render="customrowperpage" />
</h:selectOneMenu>
<h:inputText id="customrowperpage" value="#{AccountsController.rowsPerPage}" rendered="#{AccountsController.rowsPerPage == '094332'}" required="true" />
我如何在JSF页面中执行此操作?
P.S我更新了代码,但AJAX代码无效。当我选择“自定义”时,不会渲染输入字段。
答案 0 :(得分:16)
通过转换器属性添加整数转换器。
<h:selectOneMenu converter="javax.faces.Integer"/>
答案 1 :(得分:5)
这里有一些问题。
组件size
没有名为h:selectOneMenu
的属性。删除它。
选择项custom
无法解析为整数,因此只要此选择项存在,您就会收到错误。
您需要在h:selectOneMenu
组件中添加数字转换器。 <f:convertNumber integerOnly="true" />
一旦解决了这些问题,那么将组件的值绑定到Integer类型的托管属性就没有问题。