我在 bean 中有一个字符串字段borderColor
,我不想设置为null
使用 EL,但它总是被强制为空字符串。
<p:inputText value="#{axis.borderColor}" rendered="#{axis.borderColor != null}">
<p:ajax update=":form:plot"/>
</p:inputText>
<p:commandButton value="#{msg.initialize}" action="#{axis.setBorderColor( 'cccccc' )}" rendered="#{axis.borderColor == null}" update=":form:mainTabs:axesSettings :form:plot"/>
<p:commandButton value="#{msg.reset}" rendered="#{axis.borderColor != null}" update=":form:mainTabs:axesSettings :form:plot">
<f:setPropertyActionListener target="#{axis.borderColor}" value="#{null}" />
</p:commandButton>
- 如果
borderColor
为空,我会显示一个“初始化”按钮。 - 如果
borderColor
不为空,我会显示一个文本字段,用户可以在其中输入 CSS 颜色和“重置”按钮。当按下重置按钮时,我想将borderColor设置回null(我实际上使用的是PrimeFaces p:colorPicker而不是文本字段,但问题是一样的)。
我已经阅读了所有内容javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
,并且我认为添加该上下文参数可以解决问题,但它没有任何效果。由于某种原因,由 提供的空值似乎setPropertyActionListener
正在转换为空字符串。
我正在使用 GlassFish 4.0 和 PrimeFaces 4.0-SNAPSHOT