2014-01-14 62 views
1

我正在使用Omnifaces 1.7來驗證我的JSF 2表單中的多個字段。更確切地說,我使用下面的代碼片段報價是從驗證錯誤消息與omnifaces`o:validateMultiple`丟失的

<o:validateMultiple 
      id="activiteValidator" 
      components="programmeCreation programmeReport dateEcheance" 
      validator="#{activiteControleFacesValidator}" 
      message="L'activité n'est pas cohérente." /> 

其中除了一個小毛刺,當顯示消息時,由於驗證錯誤被觸發,錯誤消息中的引號將丟失。這是我得到的HTML的驗證的情況下未能

Lactivité nest pas cohérente. 

如果你知道什麼是錯的這個配置,或者我怎麼能繞過這個問題,我將不勝感激。

更新:如果我試圖逃避報價,它仍然無法正常工作。當message="L\'activité"時,HTML結果爲L\activité

+0

試試這個:'message =「L \'activitén'est pas pascohérente。」'。 – Omar

+0

對不起,我的帖子不夠完整。我已經試過了,我已經更新了我的帖子。 – clark

+0

您可以嘗試將消息的表達式放在視圖以外的其他位置(在模型層或通過包功能)嗎? – Omar

回答

3

這是由MessageFormat API引起的,它被用於消息格式化(用{0}{1}等代替)。撇號(單引號)實際上是一個轉義字符。

您需要將另一個單引號轉義才能按原樣顯示。

<o:validateMultiple 
    ... 
    message="L''activité n''est pas cohérente." /> 

另一種方法是使用捲曲的右單引號。

<o:validateMultiple 
    ... 
    message="L’activité n’est pas cohérente." />