私のbeanはビュースコープです。私はgetterとsetterを持つ単純な文字列プロパティを持っています。 getterはうまく動作します(プロパティの初期化によってチェックされます)が、セッターは動作しません。セッターメソッドでは、私はそれぞれの入力パラメーターを使用してStringbufferを構築しています。Beanのプロパティが更新されていません
コード:
public String getParamval() {
return paramval;
}
public void setParamval(String paramval) {
logger.info("Incoming value:" + paramval);
pvals.append(paramval);
this.paramval = "VAL";
}
はそれは間違ってますか?私は、入力文字列が渡されているかどうかを確認するためにsetter内でテストしましたが、明らかにメソッドが呼び出されていない/呼び出されていないようです。ビューでは#{}表記を使用しています。
ビュー:
<c:forEach items="${gdsiGeodataBean.requiredfields}" var="reqs">
<h:outputLabel value="#{reqs}:* " />
<pou:inputText value="#{gdsiGeodataBean.paramval}" required="true" requiredMessage="Input is required."/>
</c:forEach>
そして、なぜ私はsetterメソッドでのStringBufferを構築したいのでしょうか?なぜなら、入力テキストは動的リストに基づいて動的に作成されるからです。バインドするBeanプロパティは1つしかありません。
私はマップを使うことができますが、上記と同じ理由で、私はsetterメソッドでマップ値を更新できないようです。これは、私はアプローチが完全に間違っているにもかかわらず、ここでUpdating a map value in a managed bean
ウィザードコンポーネントは、ダイアログコンポーネント内にある内にあります。このフォーム内にもダイアログコンポーネントにも他のフォームはありません。ビューには、レンダリングされた属性がfalseに設定されている場所はありません。私は、これを確認するためにビュー・ツリーをチェックする必要があると思います。 –
algone
何か変なことが起こっています。私はタグをタグに置き換えました。なぜこれはそうですか? –
algone
あなたはビューレンダリング時間式に頼っているようです。長いストーリー短い:http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense – BalusC