4

私はJSFを初めて使用し、JSF2.0のnoSelectionOption属性に出くわしました。

この属性の目的がわかりません。説明に従って、選択が必要であり、ユーザーが選択noSelectionOptionして検証エラーが発生した場合に使用されます。

では、ユーザーがそのリストまたはメニューをnoSelectionOption = true選択してバイパスできる場合はどうでしょうか。noSelectionOption

または、noSelectionOption = trueユーザーがアイテムの1つを選択する必要がある場合、および選択しnoSelectionOptionた場合、検証エラーが発生しますか?

noSelectionOptionそれが本当なら、ユーザーはリストまたはメニューの下の項目の1つとして見ることができますか?

この背後にある論理を理解するのを手伝ってください。

4

1 に答える 1

9

f:selectItemtrueに設定されたはnoSelectOption、次のような「選択なし」オプションを表します。

-- Select a Colour -- < noSelectOption was intended for this case
Red
Green
Blue
Tomato

hideNoSelectionOptionメニュー コンポーネントで が true に設定されていない限り、このアイテムはメニューにレンダリングされます。その場合、ユーザーがメニューを操作すると、オプションが選択されます。

入力が必須で、この「選択なし」オプションが選択されている場合、検証エラーが発生することに注意してください。

もう少しコーディングが必要な代替手段は、f:selectItemwithを使用value="#{null}"して、ユーザーが値を選択しなかった場合を表すことです。コンバーターをお持ちの場合は、このnullケースを確認する必要があります。必要に応じて、カスタム バリデーターをいくつか導入してください。

于 2012-11-20T18:27:59.243 に答える