JSF:如果省略GET参数,则抛出404错误

时间:2013-02-25 13:46:56

标签: java jsf jsf-2

如果将无效的GET参数传递给页面,我需要抛出404错误。我按照here描述将它附加到验证器。但是如果根本没有参数,则不调用验证器。我该如何处理这种情况?

1 个答案:

答案 0 :(得分: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
}

此方法适用于多个参数,您可以在其中验证每个参数并采取相应的行动。