2009-07-20 40 views
1

我遇到了阻塞情况并需要帮助。问题基本上是这样的: 页面上有一个与验证程序相连的字段。此验证程序依次验证特定关系中的其他字段,并应为所有验证失败的相关字段提供错误消息。针对单个JSF验证程序的多条消息

所以基本上我想单个验证器异常包含多个facesmessage应该显示在页面上的列表。有没有办法做同样的事情?根据我的理解,每个ValidatorException可以附加一个FacesMessage。所以我试图通过在单个FacesMessage字符串中的不同消息之间提供“\ n”甚至“”来以新行显示消息,但它不起作用。任何人都可以请帮我吗?

回答

2

如何直接添加面部信息,例如,如果你有3文本输入字段,你想要显示的消息,并让他们绑定为输入1,输入2和输入3:

FacesContext.getCurrentInstance().addMessage(
    input1.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 

FacesContext.getCurrentInstance().addMessage(
    input2.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 

FacesContext.getCurrentInstance().addMessage(
    input3.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 
+0

我没试过但是我担心这种方法是否会将这些消息与其他验证器消息一起反映出来。通过在提交方法中包含类似的方法,我尝试了这样的事情。但随后验证发生在不同的生命周期阶段,所有的消息都没有立即出现。我的意思是,如果我将验证者1与消息1验证器2相关联,并且与消息2相关联,并且上面的函数将添加消息3和消息4..验证后,第一条和第二条消息将会聚集在一起,否则将显示消息3和4。希望我清楚.. – Barun 2009-07-20 20:04:47