您似乎也用 Facelets 替换了旧版 JSP(干得好!)。此行为特定于 Facelets。它隐式地对所有模板文本进行 HTML 转义,作为内置 XSS 攻击预防的一部分。
改为使用<h:outputText escape="false">
。
<c:if test="${level ne 1}"><h:outputText value="<ul>" escape="false" /></c:if>
<li>..</li>
<li>..</li>
<li>..</li>
<c:if test="${level ne 1}"><h:outputText value="</ul>" escape="false" /></c:if>
顺便说一句,你最好使用它的rendered
属性而不是那些丑陋的 JSTL 标签。
<h:outputText value="<ul>" escape="false" rendered="#{level ne 1}" />
<li>..</li>
<li>..</li>
<li>..</li>
<h:outputText value="</ul>" escape="false" rendered="#{level ne 1}" />
与具体问题无关,对于具体的功能需求,您可能会发现OmniFaces<o:tree>
组件很有用。