为了账号安全,请及时绑定邮箱和手机立即绑定

在JSF中为selectOneMenu添加“未选择”选项的最佳方法

在JSF中为selectOneMenu添加“未选择”选项的最佳方法

蝴蝶刀刀 2019-07-27 09:58:37
在JSF中为selectOneMenu添加“未选择”选项的最佳方法我想知道什么是允许用户在selectOneMenu中选择任何内容的最佳或最简单的方法。我的例子:我有一个注册用户列表,管理员应该能够按一些标准过滤显示的用户列表。这些标准,如usertype(employee,customer,...)可以由selectOneMenus选择,如下所示:<h:selectOneMenu value="#{myBean.selectedUsertype}" converter="#{usertypeConverter}"><f:selectItems value={myBean.usertypes}" /></h:selectOneMenu>当相应的selectOneMenu由使用转换器的POJO列表支持时,如何将项添加到列表中,表明用户没有选择任何特定项?目前我有一个虚拟的usertype对象显示标签“---”,但这在我的应用程序的其他方面引起了几个问题,我不认为这是最好的解决方案。
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

只需将选择项值显式设置为null

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItem itemValue="#{null}" itemLabel="--select--" />
    <f:selectItems value="#{bean.availableItems}" /></h:selectOneMenu>

不,像一个空字符串itemValue=""是不够的。它真的必须null。否则你会遇到问题,如本问答所述:使用“请选择”f:selectItem在ap:selectOneMenu中使用null / empty值

如果该项目恰好是required="true"您正在使用JSF 2.x,那么您可以添加noSelectionOption="true"到选择项目。如果您还设置hideNoSelectionOption="true"了选择组件,则一旦最终用户选择其他项目,它将隐藏列表中的空选项,从而无法重新选择空选项。

<h:selectOneMenu value="#{bean.selectedItem}" hideNoSelectionOption="true">
    <f:selectItem itemValue="#{null}" itemLabel="--select--" noSelectionOption="true" />
    <f:selectItems value="#{bean.availableItems}" /></h:selectOneMenu>


查看完整回答
反对 回复 2019-07-27
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

添加一个带有null值的selectItem ;

<h:selectOneMenu value="#{bean.question}" required="true" requiredMessage="Please select a question">
    <f:selectItem itemValue="#{null}" itemLabel="Select" />
    <f:selectItems value="#{bean.questions}" /></h:selectOneMenu>


查看完整回答
反对 回复 2019-07-27
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我们可以在primefaces(当我们必须使用<p:selectOneMenu...从某些原因,如使用<p:ajax..)添加以下空项:

<f:selectItem itemValue="#{null}" itemLabel="--select--"  itemDisabled="#{Mybean.value ne null}" />

注意:在这种情况下,我们不需要以下两个标记:

hideNoSelectionOption="true"

noSelectionOption="true"


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 780 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号