2016-08-19 17 views
4

私はp:messagesをprimefaces XHTMLのUIの表示エラーに使用しています。 従業員のような文字列を表示したい。 OmniFaces Messagesユーティリティを使用しようとしているとき、それは表示されません。詳細は以下のコードをご覧ください。アポストロフィを表示するにはどうすればいいですか?OmniFacesメッセージで追加されたメッセージ#add

XHTML:

<p:messages id="globalMessages" autoUpdate="false" closable="true" 
       escape="true" showDetail="true"/> 

豆:

Messages.add(FacesMessage.SEVERITY_ERROR, "global", "employee's"); 

プレゼンテーション:

enter image description here

それは私が無地FacesContext#addMessage()使用するときに動作します:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "PrimeFaces Rocks employ's")); 

プレゼンテーション:

enter image description here

しかし、私はこれが原因とされ、どのように私はメッセージに単一引用符を表示することができますどのようにMessages.add(FacesMessage.SEVERITY_ERROR, "global", "employee's");

を使用する必要がありますか?

javadocで述べたように

答えて

3

は、OmniFaces Messagesのデフォルトのリゾルバは、正確にどのように<h:outputFormat>とリソースバンドルの仕事などのように、メッセージをフォーマットするMessageFormat APIを使用しています。

MessageFormat APIの場合、一重引用符は特殊文字であり、そのまま引用する場合は別の引用符でエスケープする必要があります。

Messages.add(FacesMessage.SEVERITY_ERROR, "global", "employee''s"); 

代わりに中括弧を使用することもできます。

Messages.add(FacesMessage.SEVERITY_ERROR, "global", "employee’s"); 

またはメッセージに何もしないカスタムメッセージリゾルバを登録する。

Messages.setResolver(new Messages.Resolver() { 
    public String getMessage(String message, Object... params) { 
     return message; 
    } 
}); 

ただし、メッセージパラメータは使用できません。


更新:最初の場所にはメッセージパラメータが存在しない場合、私はちょうど任意のフォーマットを実行しないようにMessagesユーティリティを改善しています。 this commitでエンハンスメントを見ることができます。今日の最新の2.5-SNAPSHOTで利用可能です。

+0

ありがとうございます@BalusC、それは動作し、Omnifaceについていくつかのノウハウを取得します –

+0

ようこそ。 – BalusC

関連する問題