7

我想在 JSF hLselectOneMenu 中将字符串转换为整数。

<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>&nbsp;
    <h:inputText id="customrowperpage" value="#{AccountsController.rowsPerPage}" rendered="#{AccountsController.rowsPerPage == '094332'}" required="true" />

我如何在 JSF 页面中做到这一点?

PS 我更新了代码,但 AJAX 代码不起作用。当我选择“自定义”时,不会呈现输入字段。

4

2 回答 2

16

通过转换器属性添加整数转换器。

<h:selectOneMenu converter="javax.faces.Integer"/>
于 2012-09-19T16:54:55.127 回答
5

这里有几个问题。

  • size组件没有命名属性h:selectOneMenu。删除这个。

  • 选择项custom无法解析为整数,因此只要该选择项存在就会出错。

  • 您需要在h:selectOneMenu组件中添加一个数字转换器。 <f:convertNumber integerOnly="true" />

一旦解决了这些问题,将组件的值绑定到 Integer 类型的托管属性就没有问题了。

于 2012-09-19T16:38:25.377 回答