我的網站結構是這樣的:插入HTML動態與JSTL
引入了menu.jsp
...
`<li id="menu"><a href="index.jsp?page=pizzas"><i class="fa fa-angle-double-right"></i>Pizzas</a></li>`
...
的index.jsp
...
<c:when test="${param.page == 'pizzas'}">
<jsp:include page="/pages/cadastro/pizzas.jsp" />
</c:when>
...
pizzas.jsp
<c:forEach var="pizza" items="${pizzas}">
<td data-title="#">${pizza.id}</td>
<td data-title="Description">${pizza.description}</td>
<td data-title="Type">${pizza.type}</td>
</c:forEach>
當我試圖在上插入html時,我的問題就發生了pizzas.jsp:我該如何使用一個servlet來填充我的<td>
的?它應該在哪裏被調用?我想過上調用一個函數ajax
時pizzas.jsp
準備這樣的:
$(document).ready(function() {
$.ajax({
url: "PizzaController?action=listPizzas",
type: 'GET',
success: function (result) {
},
complete: function() {
alert('complete');
}
});
}
,在我的Servlet(PizzaController
):
private void listPizzas(HttpServletRequest request, HttpServletResponse response) {
List<Pizza> pizzas = new ArrayList<>();
try {
pizzas = pizzaDaoImpl.findAll();
} catch (Exception e){
System.out.println(e.getMessage());
}
request.setAttribute("pizzas", pizzas);
try {
RequestDispatcher rd = request.getRequestDispatcher("/index.jsp?page=pizzas");
rd.forward(request,response);
} catch (IOException e1) {
e1.printStackTrace();
} catch (ServletException e){
e.printStackTrace();
}
}
做這種方式的問題在於,pizzas.jsp將被調用兩次:1)在菜單上點擊; 2)在ajax調用。
那麼,在這種情況下插入dynamyc html的最佳方式是什麼?
實際問題是什麼?你是否試圖避免重新加載頁面來更新pizzas.jsp中顯示的表格?要根據點擊按鈕動態更新表格? – MarGar 2014-10-10 06:24:06