Мне нужно использовать функцию ajax для загрузки внешнего элемента div (внешнего файла jsp) на текущую страницу. Эта страница JSP содержит динамическое содержимое - например, содержимое, основанное на значениях, полученных из текущего сеанса.
Я как-то решил эту проблему, но сомневаюсь, потому что считаю, что мое решение плохое, или, может быть, есть лучшее решение, поскольку я не эксперт.
У меня есть три файла:
Функция Javascript, запускаемая при нажатии на элемент TR , запрашивает html-данные из сервлета:
$("#inboxtable tbody tr").click(function(){
var trID = $(this).attr('id');
$.post("event?view=read",{id:trID}, function(data){
$("#eventContent").html(data); // load external file
},"html"); // type
});
Сервлет «событие» загружает данные и генерирует контент HTML, используя include метод:
String id = request.getParameter("id");
if (id != null) {
v.add("Test");
v.add(id);
session.setAttribute("readMessageVector", v);
request.getRequestDispatcher("readMessage.jsp").include(request, response);
}
Наконец: внешний readMessage jsp файл выглядит так:
<p>
Text: ${readMessageVector[0]}
</p>
<p>
ID: ${readMessageVector[1]}
</p>
Мои вопросы
Достаточно ли этого решения для решения этой проблемы - загрузки внешнего jsp с динамическим содержимым?
Есть ли лучшее решение? например, поместить все элементы DIVs в один файл вместо загрузки их из внешнего файла и показать или скрыть эти элементы, используя javascript / jquery в одном файле? Таким образом, я буду использовать только JSON?