2012-09-30 7 views
11

JSF 2.0でPrimeFacesを使用して1つのアプリケーションを構築しています。私はユーザーがリッチテキストを作成できるようにPrimeFaces <p:editor>コンポーネントを使用しています。しかし、このコンポーネントの出力は次のようになりHTMLソースです:私は以下のように<h:outputText>でこれを表示するとHTMLコードを含むStringをJSFページに挿入して解釈するコンポーネント

String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>"; 

<h:outputText value="#{bean.text}" /> 

そして、それは、プレーンテキストとしてHTMLコードを示しています

<P>このテキスト<私>は、私はいくつかの< Bを>/<が含まれています> HTML </b >コード。 </p >

HTMLソースを解釈できるコンポーネントはありますか。 <i>は実際に斜体で表示され、<b>は太字で表示されますか?

このテキストいくつかHTMLコードが含まれています。

答えて

21

デフォルトでは、JSFはバッキングBeanのプロパティからHTMLをエスケープして、XSSの攻撃ホールを防ぎます。これを無効にするには、<h:outputText>escape属性をfalseに設定してください。

このようにして、HTMLはエスケープされず、ウェブブラウザによって解釈されます。具体的な問題とは無関係の


、あなたはここで基本的にユーザ制御入力エスケープを再表示しているとして、XSS攻撃には注意してください。あらかじめ衛生的にしたいかもしれません。

関連する問題