Frage

Ich habe eine Frage in Bezug auf die Einreichung Formularinhalt mit p:commandbutton, die in der Ajax-Weg zur Arbeit neigt.

Wenn ich einen Code wie folgt:

<f:verbatim  rendered="#{myBean.constructor}"></f:verbatim >
 <h:form prependId="false">
          ....            
            .....
<p:commandButton   value="#{msg.Add_Parameter_Set}" update="addParameterSetPnl,msgs"  action="#{myBean.initNewParametersSet}"/>
  </h:form>

Wenn Sie das Formular mit der Befehlsschaltfläche Vorlage wird das Verfahren getContructor von f: wörtlich genannt werden (ich verschiedene Teile des Formulars aktualisieren)? Wie kann ich verhindern, dass es aufgerufen wird?

Ich dachte, dass ein Formular abgeschickt werden, macht nur den Inhalt der Form / der Inhalt, der durch update Parameter angegeben wurde ..

War es hilfreich?

Lösung

Es sollte nicht schaden. Wenn Sie dort teure Sachen tun, dann sollten Sie, dass an den Konstruktor, @PostConstruct oder Aktionsmethode der Bohne in Frage bewegen, oder einführen verzögertes Laden oder Phase-Sniffing.

// In Constructor..
public Bean() {
    constructed = getItSomehow();
}

// ..or @PostConstruct..
@PostConstruct
public void init() {
    constructed = getItSomehow();
}

// ..or action method..
public String submit() {
    constructed = getItSomehow();
    return "outcome";
}

// ..or lazy loading..
public boolean getConstructed() {
    if (constructed == null) constructed = getItSomehow();
    return constructed;
}

// ..or phase sniffing (this one updates during render response only).
public boolean getConstructed() {
    if (FacesContext.getCurrentInstance().getRenderResponse()) constructed = getItSomehow();
    return constructed;
}

Siehe auch

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top