Ich habe das folgende grundlegende (und vielleicht dumme) Verständnisproblem in JSF:
Es gibt eine JSF-Seite "testPage.xhtml":
Und eine Backing Bean "TestBean.java":
package test;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name="testBean")
@RequestScoped
public class TestBean implements Serializable {
public static final long serialVersionUID = 1L;
private boolean renderB2 = false;
public String ctrl() {
setRenderB2(true);
System.out.println("ctrl() wird aufgerufen.");
return null;
}
public boolean getRenderB2() {
return renderB2;
}
public void setRenderB2(boolean renderB2) {
this.renderB2 = renderB2;
}
}
Also haben beide Links TestBean.ctrl()
als Aktion.
Zuerst wird nur B1
gerendert. Wenn B1
angeklickt wird, wird TestBean.ctrl()
ausgeführt und auch B2
wird gerendert.
Wenn jedoch B2
angeklickt wird, wird nicht TestBean.ctrl()
ausgeführt.
Und das ist meine Frage: Warum wird die Aktionsmethode nicht ausgeführt, wenn B2
angeklickt wird?
Vielleicht liegt es daran, dass B2
nicht erneut gerendert wird. Aber warum verhindert das die Ausführung der Aktionsmethode (die vom zuvor gerenderten B2
Link aufgerufen wird)?