1

場合によっては、jsfにulタグを追加したいと思います。私のコードは次のようになります:

<c:if test="${level ne 1}" >&lt;ul&gt;</c:if>
<li>..</li>
<li>..</li>
<li>..</li>
<c:if test="${level ne 1}" >&lt;/ul&gt;</c:if>

私がjsf1.2を使用していたとき、それはうまく機能します。しかし、jsf 2.0に変更すると、次のようになります。

 "<ul>"
 <li>..</li>
 <li>..</li>
 <li>..</li>
 "</ul>"

どうすれば修正できますか?本当にありがとう!!

4

1 に答える 1

2

従来のJSPもFaceletsに置き換えたようです(よくできました!)。この動作はFaceletsに固有です。組み込みのXSS攻撃防止の一環として、すべてのテンプレートテキストを暗黙的にHTMLエスケープします。

<h:outputText escape="false">代わりに使用してください。

<c:if test="${level ne 1}"><h:outputText value="&lt;ul&gt;" escape="false" /></c:if>
<li>..</li>
<li>..</li>
<li>..</li>
<c:if test="${level ne 1}"><h:outputText value="&lt;/ul&gt;" escape="false" /></c:if>

renderedちなみに、これらの醜いJSTLタグの代わりに、その属性を使用することをお勧めします。

<h:outputText value="&lt;ul&gt;" escape="false" rendered="#{level ne 1}" />
<li>..</li>
<li>..</li>
<li>..</li>
<h:outputText value="&lt;/ul&gt;" escape="false" rendered="#{level ne 1}" />

具体的な問題とは関係なく、具体的な機能要件については、OmniFacesコンポーネントが役立つ場合あります<o:tree>

于 2012-06-25T03:03:20.323 に答える