2009-07-20 79 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