2

セキュリティに関する質問がありますが、JSF でこれを行う方法がわかりません。PHP では、POST として定義されているフォーム送信に反応できます。POST を介してのみ値が必要なため、同じ名前のフィールドから GET を介して値を取得する方法はありません。

例:
フォーム内のフィールド名:
私の PHP サイトの$_POST["username"]ユーザー$_GET["username"]

だから、今私は私のJSFサイトにもこれが欲しい.
問題は、すべてのリクエストに対して POST を実装できるだけでなく、GET にも反応しなければならないことです。
フォーム データが GET 経由ではなく、POST 経由で Bean に送信されるようにしたいだけです。

どうすればこれに到達できますか? フィルターか何かで?ご参考までに: アプリケーションで JavaScript を使用できません。

どうもありがとう!

4

2 に答える 2

4

あなたの質問を理解できたかどうかはわかりませんが、バッキング Bean のメソッドが POST または GET を使用して呼び出されたかどうかを確認する必要がある場合は、次のように HttpServletRequest オブジェクトからその情報を取得できます。

  @ManagedBean(name="myBean")
  @ViewScoped
  public class MyMBean implements Serializable{



    public void handleForm(){

        HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();

        if(req.getMethod().equalsIgnoreCase("POST")){

            //Handle your form data
        }
    }
于 2012-08-02T07:38:32.207 に答える
2

確認してくださいFacesContext#isPostback()

if (FacesContext.getCurrentInstance().isPostback()) {
    // It's a JSF POST request.
}
于 2012-08-02T11:43:20.233 に答える