gpt4 book ai didi

java - 在 getAsObject 中,arg2 作为 null 传递

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:57 25 4
gpt4 key购买 nike

我正在使用 JSF2.0 和 tomcat 7,并且我的页面中定义了几个 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>

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

最佳答案

这在 JSF 1.x 中没有发生,但在 JSF 2.x 中将会发生。这样做是为了正确支持 bean 验证,例如 @NotNull。在通过 bean 验证之前,JSF 首先按照规范对其进行转换。您只需添加 nullcheck 并返回 null 或其他内容。

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

<context-param>
<param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name>
<param-value>false</param-value>
</context-param>

关于java - 在 getAsObject 中,arg2 作为 null 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com