如果向页面传递了无效的GET参数,我需要抛出404错误。我已经将它附加到验证器上,如这里所述。但若并没有任何参数,则不会调用验证器。我该如何处理这种情况?
您可以在与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
}
这种方法适用于多个参数,您可以验证其中的每一个参数并采取相应的行动。