質問

フォーム内容の送信に関して質問があります。 p:commandbutton これは ajax の方法で動作する傾向があります。

次のようなコードがある場合:

<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>

コマンド ボタンを使用してフォームを送信すると、f:verbatim のメソッド getContructor が呼び出されますか (フォームのさまざまな部分を更新します)。どうすれば呼び出されないようにすることができますか?

フォームを送信すると、フォームのコンテンツ/によって指定されたコンテンツのみがレンダリングされると思いました。 update パラメータ..

役に立ちましたか?

解決

それは害を及ぼすべきではありません。そこで高価なものを実行している場合は、それをコンストラクターに移動する必要があります。 @PostConstruct または問題の Bean のアクション メソッドを使用するか、遅延ロードまたはフェーズ スニッフィングを導入します。

// 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;
}

こちらも参照

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top