我想在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" />
Run Code Online (Sandbox Code Playgroud)
我如何在JSF页面中执行此操作?
PS我更新了代码,但AJAX代码无效.当我选择"自定义"时,不会渲染输入字段.
djm*_*jmj 16
通过converter属性添加Integer转换器.
<h:selectOneMenu converter="javax.faces.Integer"/>
Run Code Online (Sandbox Code Playgroud)
这里有一些问题.
没有命名size该组件的属性h:selectOneMenu.删除它.
custom无法将选择项解析为整数,因此只要此选择项存在,您将收到错误.
您需要为组件添加数字转换器h:selectOneMenu. <f:convertNumber integerOnly="true" />
一旦解决了这些问题,那么将组件的值绑定到Integer类型的托管属性就没有问题.