我有一个JSF 2.1,Primefaces 4.0 Web应用程序,我希望将一些GET值传递给托管bean。为此,我使用了:
<f:metadata>
<f:viewParam name="id" value="#{myMB.queueId}" required="true" requiredMessage="This field is required" converter="javax.faces.Integer" converterMessage="Cannot Convert"/>
<f:event type="preRenderView" listener="#{myMB.init}" />
</f:metadata>
和托管bean:
public MyMB{
private Integer queueId;
// setters and getters....
public void init(){
FacesContext fc = FacesContext.getCurrentInstance();
if(!fc.isPostback()){
if(fc.isValidationFailed()){
//if validation fails i want to add here a message - Ideally to keep the validation/convertion errors declared in f:viewParam....
FacesMessage fm = new FacesMessage(..put validation error message here...)
fc.add(null,fm);
try {
fc.getExternalContext().redirect("viewQueues.xhtml?faces-redirect=true");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
所以我想在重定向的页面上发送验证错误 我也尝试过:
context.getExternalContext().getFlash().setKeepMessages(true);
但在重定向页面上我没有收到任何消息。我必须在这里提到我的viewQueues.xhtml上有一个应该显示错误的标签。
有办法实现吗?