2013-05-23 3 views
0

вот моя проблема: Я хочу загрузить файл (test.tag) в div с jquery при нажатии кнопки.загрузите файл (taglib.tag) в div с jQuery

Вот код:

<%@ 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+">"); 

, но не работает.

Вы можете мне помочь? ^^

+0

Итак, вы пытаетесь загрузить html, сгенерированный из пользовательского тега jsp, на свою страницу с помощью javascript? – Tap

+0

точно ^^ На самом деле я уже могу отображать разные страницы с помощью jQuery, но есть столько div, что и страница, которую я хочу отобразить. Проблема в том, что если я хочу отображать 40 разных страниц, мне нужно 40 div (и будет загружено 40 страниц: /). Вот почему я хочу попытаться сделать динамическую нагрузку ^^ – sorcier157

ответ

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> 
+0

Итак, как я могу заставить сервер оценить новый код? – sorcier157

+0

Вы можете использовать ajax для загрузки вывода jsp, который содержит код пользовательского тега. Создайте отдельный jsp для каждого уникального использования настраиваемого тега (другой контент или атрибуты), а затем используйте URL-адрес правильного jsp в качестве URL-адреса ajax. Вы вернете html, сгенерированный вашим пользовательским тегом, который вы разместили на своей странице, используя jquery. Jsps может быть очень коротким - просто объявление taglib и сам тег. – Tap

+0

вот код, который я пытаюсь использовать сейчас: $.Ajax ({ \t \t \t \t типа: "POST", \t \t \t \t URL: "#", \t \t \t \t контекст: $ ("# NEWPAGE"), \t \t \t \t DATATYPE: "HTML » \t \t \t \t данные: "<% @ TagLib префикс = 'комп' tagdir = '/ WEB-INF/теги/настольные/тест' %>", \t \t \t \t processData: false \t \t \t}); и ошибка «без тега в библиотеке тегов с префиксом test»: / – sorcier157

Смежные вопросы