2013-07-26 48 views
0

我有一個自定義的電子郵件驗證這樣一種形式:omnifaces驗證原因提交+ 1個信息頁上:信息

<o:validator for="#{cc.attrs.id}_text" validatorId="emailValidator" disabled="#{not cc.email}" message="#{messages['message.validation.invalidEmail']}" /> 

而且我有一個命令使用Ajax = false時提交表單。

在第一篇文章中,電子郵件驗證程序錯誤消息顯示正確。問題是,當兩次提交相同的表單時 - 我還收到了2封無效的電子郵件。再次提交,你得到3.這個問題不會發生在其他本地jsf驗證器,如需求和模式。

比如我提交表單3X我會得到以下消息:

Email > Invalid format 
Email > Invalid format 
Email > Invalid format 

我bean是談話範圍。任何想法?謝謝。

+0

請張貼使用此驗證程序的上下文,最好作爲SSCCE。我無法重現您的問題,並且'for'屬性的使用非常奇怪,我無法想到真實世界的設備。你在嵌套複合組件中使用這個嗎? – BalusC

+0

沒有反饋?這樣你就無法得到正確的解釋和指導。 – BalusC

回答

0

我真的不知道發生了什麼事,但是,在這種情況下,爲我工作的解決方案是:

1)使用F:驗證 2)創建一個自定義的驗證,並將其設置爲F:驗證,例如:

我需要硬編碼電子郵件驗證,因爲我使用的定製組件。在這種情況下使用變量不起作用。

+0

請注意,自定義組件與複合組件不同。在你的問題的代碼示例中,你似乎實際上使用了一個複合組件。 – BalusC