jsf f:selectItem设置空字符串“”而不是null值

时间:2014-06-30 06:21:05

标签: jsf primefaces

在我的xhtml页面中,<selectOneMenu>我在<f:selectItem>中将null设置为itemValue但是我得到空字符串“”但是我希望它为null以下是我的代码请检查并给出我的解决方案。

<h:selectOneMenu id="gender" required="false" value="#{pc_allotteeCreation.allotteeVO.aloteGender}" 
                 styleClass="col-xs-10 col-sm-5" 
                 requiredMessage="#{i18n['common.validation_message']}">

    <f:selectItem itemValue="#{null}" itemLabel="Select"  />
    <f:selectItem itemValue="Male" itemLabel="Male" />
    <f:selectItem itemValue="Female" itemLabel="Female" />
    <f:selectItem itemValue="TransGender" itemLabel="TransGender" />

    <p:ajax update="gndmsg" event="blur" />
</h:selectOneMenu>
<p:message id="gndmsg" for="gender" showDetail="true"></p:message>

2 个答案:

答案 0 :(得分:1)

将以下行添加到web.xml,将空字符串解释为null

    <context-param>
       <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
       <param-value>true</param-value>
    </context-param>

答案 1 :(得分:0)

h:selectOneMenu返回所选项目的字符串类型。您需要一些服务器逻辑来将返回的字符串值映射到对象或null。通常这可以通过转换器来完成。

Here is an example用于JSF中的自定义转换器。