我是JSF的新手,我在JSF 2.0中遇到了noSelectionOption
属性。
我不明白这个属性的目的。根据描述,在需要选择并且用户选择导致验证错误的noSelectionOption
时使用它。
那么,如果是noSelectionOption = true
,那么用户可以选择noSelectionOption
并绕过该列表或菜单吗?
或者,如果noSelectionOption = true
,则用户必须选择其中一个项目,如果他选择noSelectionOption
,则会发生验证错误?
用户是否可以将noSelectionOption
视为列表或菜单下的其中一项?如果是真的话?
请帮助我理解这背后的逻辑。
答案 0 :(得分:7)
将f:selectItem
设置为true的noSelectOption
表示“无选择”选项,如下所示:
-- Select a Colour -- < noSelectOption was intended for this case
Red
Green
Blue
Tomato
此项目在菜单中呈现,除非菜单组件中的hideNoSelectionOption
设置为true。在这种情况下,当用户与菜单交互时,选择该选项。
请记住,如果需要输入并且选择了这个“无选择”选项,则会出现验证错误。
需要更多编码的替代方法是使用带有f:selectItem
的{{1}}来表示用户未选择值的情况。如果您有转换器,则必须检查此value=#{null}
情况,如果您愿意,请介绍一些自定义验证器。