如果将无效的GET参数传递给页面,我需要抛出404错误。我按照here描述将它附加到验证器。但是如果根本没有参数,则不调用验证器。我该如何处理这种情况?
答案 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
}
此方法适用于多个参数,您可以在其中验证每个参数并采取相应的行动。