0

idOutputの値を変更するたびに更新したいのですselectOneMenuが、一度異なる値に変更すると、別の時間をnull割り当てることができませんnull。これは が原因だと思いますがrequired="true"、回避方法がわかりませんajax リクエストでのみ検証します。

コードは次のとおりです。

豆:

@ViewScoped
@ManagedBean
public class ProbeNull implements Serializable
{
    private static final long serialVersionUID = 1628174277372407129L;
    private Boolean probe;
    public ProbeNull()
    {
        super();
    }
    public void show()
    {
        System.err.println("Value : " + probe);
    }
    public void save()
    {
        System.err.println("Save : " + probe);
    }
    public Boolean getProbe()
    {
        return probe;
    }
    public void setProbe(Boolean probe)
    {
        System.err.println("Setter: " + probe);
        this.probe = probe;
    }
}

xhtml:

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui">
        <h:head />
        <h:body>
            <h:outputText id="idOutput" value="#{probeNull.probe}" />
            <h:form id="form">
                <p:selectOneMenu id="select" required="true" value="#{probeNull.probe}">
                    <f:selectItem itemLabel="Select one" itemValue="#{null}" />
                    <f:selectItem itemLabel="Yes" itemValue="true" />
                    <f:selectItem itemLabel="No" itemValue="false" />
                    <p:ajax update=":idOutput" />
                </p:selectOneMenu>
                <p:commandButton value="Save" ajax="false" action="#{probeNull.save()}" />
            </h:form>
            <h:form>
                <p:commandButton value="Show value" ajax="false" action="#{probeNull.show()}" />
            </h:form>
        </h:body>
    </html>

どうすれば回避できますか?

4

1 に答える 1