私は 2 日間だけ strust2 から来る jsf に非常に慣れていません!
Struts はリクエスト パラメータをアクションに自動的にバインドするため、 ModelDrivenアプローチを使用する場合に特にこれを制御するのに役立つメカニズムがありました。そこにacceptableParameterNameメソッドを実装して、ストラットによって自動的に設定されるものとそうでないものを制御できます。
いずれにせよ、今は JSF にいるので、ここで何をすればよいのでしょうか!
以下の簡単なページを試します
<h:form>
<h:inputText id="name" value="#{helloBean.name1}"></h:inputText>
<h:commandButton value="Welcome Me">
<f:ajax execute="name" render="output" />
</h:commandButton>
<h2><h:outputText id="output" value="#{helloBean.name2}" /></h2>
</h:form>
豆は次のとおりです。
@ManagedBean
@SessionScoped
public class HelloBean2 implements Serializable {
private static final long serialVersionUID = 1L;
private String name1;
private String name2;
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
}
次のようなgereated htmlを改ざんしようとしました:
<input id="j_idt41:name" name="j_idt41:name" value="" type="text">
に
<input id="j_idt41:name" name="j_idt41:name2" value="" type="text">
しかし、運が悪く、name2 は JSF によって設定されていません
私の質問は:
これは、ユーザーから取得しようとしているパラメーターを JSF が認識し、他のパラメーターを自動的に防止することを意味しますか? たとえば、name1という名前のinputTextがある場合、JSFはname1を設定しますか? !
そうでない場合、JSFが不要なパラメーターを自動的にバインドしないようにするにはどうすればよいですか?
私の本当の問題は、多くのパラメーターを持つ Bean を使用したいことであり、それらの一部のみを各ビューに設定する必要があることを考慮してください (ある種のウィザード)
JSFでは、フォームの改ざんを防ぐ最善の方法は何ですか? しかし、私の問題は違うと思います!