7

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

JSFページでこれを行うにはどうすればよいですか?

PS コードを更新しましたが、AJAX コードが機能していません。「カスタム」を選択すると、入力フィールドがレンダリングされません。

4

2 に答える 2

16

converter 属性を介して整数コンバーターを追加します。

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

ここにはいくつかの問題があります。

  • sizecomponentという名前の属性はありませんh:selectOneMenu。これを削除します。

  • 選択項目customは整数に解決できないため、この選択項目が存在する限りエラーが発生します。

  • コンポーネントに数値コンバーターを追加する必要がありますh:selectOneMenu<f:convertNumber integerOnly="true" />

これらを解決すると、コンポーネントの値を整数型の管理プロパティにバインドしても問題はなくなります。

于 2012-09-19T16:38:25.377 に答える