私の小さなプログラムで問題が発見されましたが、できるだけこの問題を解決するためのヒントやアドバイスがありますか? 。要求スコープ付きBeanの値に基づいてレンダリングされたときにフォームを送信する方法
リクエストスコープにあるbean testBeanがあります。それには、次のものが含まれています
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;
}
}
マイファイルwelcomeJSF.jspはこれを含んでいます
<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>
私はImが「真の内部設定」ボタンを提示するアプリケーションを実行すると。私はそれをクリックして、私はボタン "行く"があるフォームを提示した。 "Go"をクリックしてもBean内のメソッドはトリガされません。実際にはフィールドが実際にサーバー上でレンダリングされていないため、メソッドが実行されません。これにスマートな解決策はありますか?
事前に、お時間をいただきありがとうございます。そのレンダリング属性は常にREQUEST値を適用フェーズ中に偽に評価されるため、パネルの
私のためにそれをクリアしてくれてありがとう!非常に良い答え –