Ich habe ein Problem in meinem kleinen Programm entdeckt, und ich frage mich, ob jemand irgendwelche Tipps oder Ratschläge hat, wie man dieses Problem bestmöglich löst .Wie man ein Formular übergibt, wenn es basierend auf einem Wert in einer Beantragten Bean gerendert wird
Ich habe die Bohne testBean, die im Anforderungsbereich ist. Es enthält folgende Komponenten:
public class testBean {
private boolean internal = false;
private String input = "";
public String internalTrue() {
System.out.println("Set internal true");
setInternal(true);
return null;
}
public String submitForm() {
System.out.println("");
return null;
}
public boolean isInternal() {
return internal;
}
public void setInternal(boolean internal) {
this.internal = internal;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
Meine Datei welcomeJSF.jsp enthält diese:
<f:view>
<h:form>
<h:commandButton value="Set internal true" action="#{testBean.internalTrue}" />
</h:form>
<h:panelGrid columns="1" rendered="#{testBean.internal}">
<h:form>
<h:outputText value="JavaServer Faces" /><h:inputText value="#{testBean.input}" />
<h:commandButton value="Go" action="#{testBean.submitForm}" />
</h:form>
</h:panelGrid>
</f:view>
Wenn ich die Anwendung Im präsentiert mit der Taste "Set interne true" laufen. Ich klicke es an und ich präsentiere das Formular wo ich den Knopf "Go" habe. Wenn Sie auf "Go" klicken, wird die Methode in meiner Bean nicht ausgelöst, wahrscheinlich weil das Feld nicht mehr auf dem Server gerendert wird und die Methode nicht ausgeführt wird. Gibt es dafür clevere Lösungen?
Im Voraus, danke für Ihre Zeit.
Vielen Dank für die Klärung für mich! Sehr gute Antwort –