1

web.xml

[...]
<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>false</param-value>
</context-param>
[...]

view.xhtml

[...]
<p:selectOneMenu id="input1" value="#{myBean.value1}">
    <f:selectItem itemValue="" itemLabel="..." />
</p:selectOneMenu>

<p:inputText id="input2" value="#{myBean.value2}" />
[...]

MyBean.java

[...]
private String value1;
private String value2;
[...]

空白のままinput2にして、フォームを送信し、マネージド Bean の値を調べます。

  • value2空の文字列です - 予想通り!
  • value1無効です

value1null が空の文字列ではないのはなぜですか? 値を空の文字列にしたい場合、どうすればこれを達成できますか?

更新 「問題」はクラスにありcom.sun.faces.renderkit.html_basic.MenuRendererます:

public Object getConvertedValue(...) {
    [...]
    if (RIConstants.NO_VALUE.equals(newValue)) {
        return null;
    }
    [...]
}
4

1 に答える 1