【问题标题】:Multiple messages for single JSF Validator单个 JSF 验证器的多条消息
【发布时间】:2010-11-12 10:20:49
【问题描述】:

我遇到了阻塞情况,需要帮助。问题基本上是这样的: 页面上有一个附加到验证器的字段。该验证器依次验证特定关系中的其他字段,并应为所有未通过验证的相关字段抛出错误消息。

所以基本上我想要一个验证器异常来包含多个facemessage,应该在页面上显示一个列表。有没有办法做同样的事情。据我了解,每个 ValidatorException 都可以附加一个 FacesMessage。因此,我尝试在单个 FacesMessage 字符串中的不同消息之间给出“\n”甚至“”,以在新行中显示消息,但它不起作用。谁能帮帮我?

【问题讨论】:

    标签: validation jsf


    【解决方案1】:

    直接添加面孔消息怎么样,例如,如果您有 3 个文本输入字段要显示消息,并将它们绑定为 input1、input2 和 input3:

    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"));
    

    【讨论】:

    • 我还没有尝试过,但我担心这种方法会将这些消息与其他验证器消息一起反映。我通过在提交方法中包含类似的方法来尝试类似的方法。但是随后验证发生在不同的生命周期阶段,并且所有消息都没有立即发出。我的意思是,如果我让验证器 1 与消息 1 相关联,验证器 2 与消息 2 及以上功能相关联,添加消息 3 和消息 4 ..在验证后,第一条和第二条消息将聚集在一起,否则将显示消息 3 和 4。希望我很清楚..
    • 当我们在项目中遇到这种情况时,我们不会在页面上放置任何验证器,而是通过 bean 上的提交方法来处理。这确实是我们发现的最干净的方式。
    • @Nicholas 我不必要地担心。您说的方法可以很好地显示单个字段的多个验证消息。
    猜你喜欢
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2013-10-02
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多