이 문제를 해결하는 방법은 두 가지가 있지만 먼저 알고 있어야 모두 JSP
그 el
은 서버 측 기술이므로 실행하는 것을 의미합니다. e를 서버 측에서 HTML
응답을 생성하여 브라우저에서 렌더링되도록 클라이언트 측에 전송하므로 제품 테이블이 클라이언트 측에서 처음 렌더링 된 후에는 JavaScript
을 사용해야합니다. 클라이언트 측에서 실행되는 코드는 테이블 내용
그래서 첫 번째 방법은 (대신 products
객체를 반환하는 예를 들어, products_view.jsp
및 , 당신은 ModelAndView
를 돌려 별도의 JSP
파일에 해당 테이블을 넣어하는 것입니다/제거로 대체합니다 컨트롤러 메서드의 객체 :
컨트롤러
@RequestMapping(method=RequestMethod.GET, value="/products_view")
public ModelAndView MyController() {
// ...
List<Product> products = prodcat.getList();
model.addAttribute("products", products);
return new ModelAndView("products_view");
}
products_view.jsp
<div id="products_table">
<table>
<c:forEach var="p" items="${products}">
<tr>
<td>p.name</td>
<td>p.description</td>
</tr>
</c:forEach>
</table>
<div>
AJAX
// Ajax...
success: function(result) {
if (result.length > 0) {
$("#products_table").html(response);
}
}
다른 방법 당신이 채울 다음 컨트롤러에서 해당 제품 목록의 JSON 또는 XML 응답을 반환하고, JSON 응답을 클라이언트 측의 테이블에 추가하려면 종속성 목록에 Jackson
개의 jar가 있는지 확인하십시오.
,
컨트롤러
@RequestMapping(method=RequestMethod.GET, value="/products_view", produces="application/json")
public @ResponseBody List<Product> MyController()
// ...
List<Product> products = prodcat.getList();
return products ;
}
AJAX 답장을 보내
// Ajax...
dataType: "json",
success: function(result) {
if (result.length > 0) {
var productTableHTML = '<table>';
$.each(response, function (key,value) {
productTableHTML +=
'<tr><td>' + key + '</td><td>' + value + '</td></tr>';
});
productTableHTML += '</table>';
$("#products_table").html(productTableHTML);
}
}