如何将HTML传递给JSP标记体

时间:2013-10-28 10:11:54

标签: html jsp

好的,所以我想创建一个JSP标记(通过tagfile)。它允许您创建带有“添加”按钮的表,允许您在客户端添加行。因此,基本上您将行的HTML传递给此标记,并创建一个包含该行的表,并输出JS以将所述行动态插入到表中。而且你还传递了一行,它只是表格的标题。

<%@ tag language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>
<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn' %>
<%@ taglib uri='http://java.sun.com/jsp/jstl/xml' prefix='x' %>
<%@ attribute name = "id" required = "true"%>


<jsp:doBody var = "thebody"/>
<x:parse doc='${"<root>"}${thebody}${"</root>"}' var = "xmlBody"/>

<table id = "${id}" class = "datatable">
    <tbody>
        <tr>
            <x:forEach select="$xmlBody/root/th/*" var="data">
                <td><x:out select="$data"/></td>
            </x:forEach>
        </tr>
        <tr>
            <x:forEach select="$xmlBody/root/tr/*" var="data">
                <td><x:out select="$data"/></td>
            </x:forEach>
        </tr>
        <c:out value="${heading}"/>
    </tbody>
</table>

<button id="addRowButton" class="BUTTON  btndarkblue " title="Add" onclick="addRowTo${id}()"> Add </button>

<script>
    function addRowTo${id}()
    {
        $('#${id} tr:last').after('<tr><x:forEach select="$xmlBody/root/tr/*" var="data"><td><x:out select="$data"/></td></x:forEach></tr>');
    }
</script>

现在,当标签包含简单文本时,这非常有效。但是当我传递一些html(直接或通过其他自定义jsp标签)时,它只输出那些标签的TEXT,而不是标签本身。例如:

 <button onclick = "doSomething()">Click here</button>

变为

Click Here

我相信它正在做的是,当应用于非叶节点时,标签仅输出该链下叶节点的数据......

所有人都有解决方法吗?如何使它按原样输出节点?

PS:我也试过c:out,但输出的html为TEXT($ lt; tr $ gt; ...)

0 个答案:

没有答案