2

無効な GET パラメータがページに渡された場合、404 エラーをスローする必要があります。here で説明されているように、バリデーターに添付しました。ただし、パラメーターがまったくない場合、バリデーターは呼び出されていません。どうすればこの状況に対処できますか?

4

1 に答える 1

1

バリデーターを使用して現在行っているのとまったく同じチェックを配置できますが、preRenderViewイベントに関連付けられたリスナー内に配置できます。

<f:event listener="#{yourBean.validateParams}" type="preRenderView"/>

このvalidateParamsリスナーには、次のようなチェックが必要です。

public void validateParams() {
    if (yourParam == null || /*Other fitting conditions here*/) {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        facesContext.getExternalContext().responseSendError(404, "The param 'yourParam' is missing");
        facesContext.responseComplete();
    }
    //Other params here
}

このアプローチは、複数のパラメーターに対して機能し、それぞれを検証してそれに応じて行動することができます。

于 2013-02-25T13:53:15.100 に答える