0

我想展示像 primefaces 展示的代码:http: //www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf

我使用SyntaxHighlighter ,当我在 pre 标记中包含 facelets 文件时,它工作正常。但是当我显示短代码时:<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 实体,则确实需要手动转义它们。

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

难以阅读?也许对于初学者来说,但对于高级者来说不是。

或者,您可以将它们存储在某个String位置,如有必要,可以从文本(属性)文件甚至数据库中填充。

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

(请注意,当您想将其硬编码为 Java 字符串时,您需要转义双引号;当它存储在文本文件或数据库中时,您不需要转义任何内容)

Facelets 会自动转义它:

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