2

将来的にコードを保守しやすくするために、アプリケーションでバンドルからプロパティを頻繁に使用します。このため、すべての HTML テキストはキー/値プロパティ ファイルから取得されます。「index_en.properties」

これは、ブラウザーで太字のテキストをレンダリングする必要がある場合に問題になり、この問題に対処するオンラインのトピックが見つかりません。

私ができる最善の解決策は、フェッチされたすべての値を

<h:outputText> tags that are child elements of the `<b>` tags. 

ここで必要なのは、プロパティ ファイルを頻繁に使用する人からの方法論/ヒント/解決策です。

プロパティ ファイルで html エスケープ コードを直接使用しようとしましたが、うまくいきません。

任意のヒント?

ありがとう、ユッカ

PS CSSがここで役立つとは思えません。

4

1 に答える 1

4

HTML<b>をバンドルに入れ、 escape="false"onを使用し<h:outputText>て、コンポーネントによる標準の HTML エスケープを無効にします。

<h:outputText value="#{msg.text}" escape="false" />

XSS 攻撃の穴が開いてしまうため、ユーザー制御の入力に対してこれを実行しないでください。また、HTML をバンドルに入れすぎないように注意してください。、 、などを使用した基本的なテキストの書式設定では問題ありませんが<b><u>、、などのセマンティック マークアップでは問題ありません。<i><s><p><div><h1>

于 2011-12-20T14:40:50.340 に答える