0

primefaces ショーケースのようなコードを表示したいと思います: http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf

私はSyntaxHighlighter を使用します。facelets ファイルを pre タグに含めると、正常に動作します。しかし、次のような短いコードを表示すると、次のようになり<h:outputtext value="test"/> ます。

 <pre class="xml" name="code" ><h:outputtext value="test"/></pre>

html コード、jsf コンパイルおよびレンダリング後のコードが表示されます。jsf を html コードにコンパイルしないでください。HTMLの特殊文字を使用すると、コードが冗長になるようです。それを行うための構成方法またはより多くのコードを取得する方法。

(私の英語でごめんなさい)

ご清聴ありがとうございました!

4

2 に答える 2

2

< を < で交換する必要があります。および > による >。

それ以外の場合は、HTML として扱われます。

于 2013-04-23T04:41:42.730 に答える
2

XHTML テンプレート内に直接コードを記述する場合、XML エンティティをそのまま表示する場合は、XML エンティティを手動でエスケープする必要があります。

<pre class="xml" name="code">&lt;h:outputtext value="test"/&gt;</pre>

読みにくい?初心者向けかもしれませんが、上級者向けではありません。

Stringまたは、必要に応じてテキスト (プロパティ) ファイルまたは DB から入力できるのどこかに保存することもできます。

String code = "<h:outputText value=\"test\" />";

(Java 文字列としてハードコーディングする場合は、二重引用符をエスケープする必要があることに注意してください。テキスト ファイルまたは DB に保存する場合は、何もエスケープする必要はありません)

Facelets は自動的にエスケープします。

<pre class="xml" name="code">#{bean.code}</pre>
于 2013-04-23T11:24:46.240 に答える