使用jQuery在div中加载文件(taglib.tag)

时间:2013-05-23 13:07:28

标签: jquery jsp load taglib

这是我的问题: 我想在按钮点击时使用jquery在div中加载文件(test.tag)。

以下是代码:

<%@ taglib prefix="test" tagdir="/WEB-INF/tags/desktop/test"%>
<%@ taglib prefix="views" tagdir="/WEB-INF/views/desktop/test"%>

<script type="text/javascript">
function changePage(page) {

        if(page!=null) {    
        $("#newPage") = $("#newPage").replaceWith('<div id="newPage" class="tab_content"></div>'); // to delete the previous content
        $("#newPage").load("test:"+page+".tag");
        $("#newPage").fadeIn();
    }
    return false;
}
</script>

<button onclick="changePage('test')">test</button>

<div id="newPage" class="tab_content"></div>

我已经尝试输入一些html:

$("#newPage").html("<test:"+page+"></test:"+page+">");

但也没有用。

你能帮帮我吗? ^^

1 个答案:

答案 0 :(得分:0)

我认为您对自定义标记的客户端与服务器评估感到困惑。你绝对可以使用javascript来放置

<mytaglib:tagname></mytaglib:tagname>

在客户端进入你的DOM,但它将成为#newPage的文字内容。自定义标签在服务器端进行评估。当javascript在客户端执行时,你不再在jsp领域,你在html中。

jsp1.jsp

<%@ taglib prefix="test" tagdir="/WEB-INF/tags/desktop/test"%>
<test:page1></test:page1>

您可以像这样加载:

$.ajax({ 
    type: "POST", 
    url: "/jsp1.jsp", 
    dataType:"html",
    success: function(markup) {
        $("#newPage").html(markup);
    }
})

如果需要传递参数,请将它们作为自定义标记的属性,并将这些值作为请求参数发送到ajax请求中。例如:

<%@ taglib prefix="test" tagdir="/WEB-INF/tags/desktop/test"%>
<test:mytag pageId=${param.id}></test:mytag>