0

我正在尝试在 java 中生成树结构以显示在 html 中。我可以通过在 Java 中生成纯 html 来使其工作,但我更愿意将树组件(根、分支、叶)的 html 保留在标签中,而不是为了可维护性。有没有一种好方法可以将包含自定义标签(或任何标签)的java字符串翻译成html?

我尝试了几件事:

- 在控制器中构建字符串,然后在 jsp 中打印(通过 scriptlet 或 EL) 字符串未翻译,但按原样打印,即显示在浏览器中

- 在控制器中构建结构,将其传递给生成字符串的自定义标签(更多自定义标签)与上述相同的问题。无法让它重新翻译正文。我尝试了 BodyTagSupport 和 SimpleTagSupport

-use core tags 结构太复杂,所以这不是一个选项

-scriptlet 不能很好地处理标签

有任何想法吗?

4

1 回答 1

1

如果我理解正确,您的标签会生成包含另一个自定义标签实例的 HTML 代码。所以实际上它生成的不是HTML,而是JSP代码。这是不允许的。JSP 容器不会重新解析和解释您的标签生成的代码。

但是没有理由不能自己调用​​标记方法(或 JSP 标记,如果实现为标记文件)来实现递归。这是一个使用 JSP 标记文件(tree.tag,以节点集合作为参数)的简单示例:

<%@ tag %>
<%@ attribute name="nodes" required="true" rtexprvalue="true" type="java.util.collection" %>
<ul>
    <c:forEach var="node" items="${nodes}">
        <li><c:out value="${node.text}"/>
            <c:if test="${!empty node.subNodes}">
                <myTags:tree nodes="${node.subNodes}">
            </c:if>
        </li>
    </c:forEach>
<ul>
于 2013-01-28T20:04:55.420 回答