Java 在getAsObject中,arg2作为null传递

Java 在getAsObject中,arg2作为null传递,java,jsf-2,converter,Java,Jsf 2,Converter,我将JSF2.0与Tomcat7一起使用,并且在我的页面中定义了两个selectOneListBox。它们最初分配给空的ArrayList,如下所示 <h:selectOneListbox value="#{memberBean.currentAvailable}" converter="memberConverter" size="10" style="width:150px;"> <f:sel

我将JSF2.0与Tomcat7一起使用,并且在我的页面中定义了两个selectOneListBox。它们最初分配给空的ArrayList,如下所示

<h:selectOneListbox value="#{memberBean.currentAvailable}" converter="memberConverter" 
                            size="10" style="width:150px;">
            <f:selectItems value="#{memberBean.availableMembers}" var="member"
                             itemValue="#{member}" itemLabel="#   {member.fname} #{member.lname}" />
        </h:selectOneListbox>
        <h:panelGrid>
            <a4j:commandButton value="Add" render="groupMessage_Page" listner="#{memberBean.moveAvaiableMember}"/>
            <a4j:commandButton value="Remove" render="groupMessage_Page" listner="#{memberBean.moveSelectedMember}"/>
        </h:panelGrid>
        <h:selectOneListbox value="#{memberBean.currentSelected}" converter="memberConverter"
                            size="10" style="width:150px;">
            <f:selectItems value="#{memberBean.selectedMembers}" var="member"
                        itemValue="#{member}" itemLabel="#{member.fname} #{member.lname}" />
        </h:selectOneListbox>


如果页面上发生任何事件,则会调用定义为字符串arg2为null的转换器的getAsObject。我想知道,使用空参数调用该方法是正常的,还是我以错误的方式初始化了某些内容。

这在JSF 1.x中没有发生,但在JSF 2.x中会发生。这是为了正确支持bean有效性而做的,比如
@NotNull
。在通过bean验证之前,JSF必须首先按照规范对其进行转换。您只需添加一个null检查并返回
null
或其他内容

web.xml
中的以下上下文参数将禁用它,但这样您将无法再使用
@NotNull


javax.faces.VALIDATE_空_字段
假的

这在JSF1.x中没有发生,但在JSF2.x中会发生。这是为了正确支持bean有效性而做的,比如
@NotNull
。在通过bean验证之前,JSF必须首先按照规范对其进行转换。您只需添加一个null检查并返回
null
或其他内容

web.xml
中的以下上下文参数将禁用它,但这样您将无法再使用
@NotNull


javax.faces.VALIDATE_空_字段
假的

感谢巴卢斯克的回复。nullcheck无法解决我尝试使用nullcheck时遇到的问题。在这种情况下,我认为请求-响应周期没有完成,commandButton没有完成它的操作。如果我在bean中创建SelectItems并将其用于h:SelectItems,那么一切都会正常进行,getAsObject中没有空值?那你怎么查呢?它应该像
if(value==null)返回null一样简单。将其放在web.xml中也无济于事。我仍然得到arg2=nullput空检查确实解决了问题。但似乎没有效果。谢谢巴卢斯。谢谢巴卢斯的回复。nullcheck无法解决我尝试使用nullcheck时遇到的问题。在这种情况下,我认为请求-响应周期没有完成,commandButton没有完成它的操作。如果我在bean中创建SelectItems并将其用于h:SelectItems,那么一切都会正常进行,getAsObject中没有空值?那你怎么查呢?它应该像
if(value==null)返回null一样简单。将其放在web.xml中也无济于事。我仍然得到arg2=nullput空检查确实解决了问题。但似乎没有效果。谢谢你,巴卢斯克。