我正在加载一个jsp页面,在控制器中我添加了一个List作为模型属性。然后列表在jsp页面中显示如下。
<c:forEach var="pattern" items="${patterns}">
<li class="list-group-item liitem"><strong>${pattern.id}:</strong>
<span class="pull-right">${pattern.name}</span>
</li>
</c:forEach>
这是我打电话的控制器
@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome(ModelMap model){
ModelAndView mav = new ModelAndView("arcane") ;
List<Pattern> patternList=patternDao.patternList();
mav.addObject("patterns", patternList);
return mav;
}
但patternList
会不时更改,因为这是从数据库中获取的。如何在不加载整个jsp页面的情况下更新这些更改。我想要的是如何通过再次调用控制器来更新一个div标签?
我尝试使用ajax来调用控制器方法,但是如何使用ajax将新列表应用于jsp视图。
答案 0 :(得分:1)
使用Ajax,当您收到响应时更改内容。
Check this: http://jsfiddle.net/Lobmx96y/1/
答案 1 :(得分:1)
您可以为该div提供一个id,当您想刷新列表时,在响应中对控制器进行ajax调用,找到该div,如果页面中的div与响应中的div,则替换内容(通过设置div的InnerHtml)
或者
您可以创建仅包含列表的jsp页面(foreach标记)
创建一个新的控制器方法
@RequestMapping(value = "justTheList" method = RequestMethod.GET)
public ModelAndView printWelcome(ModelMap model){
ModelAndView mav = new ModelAndView("JSPPAGE_WITH_THE_LIST") ;
List<Pattern> patternList=patternDao.patternList();
mav.addObject("patterns", patternList);
return mav;
}
设置或者响应的InnerHtml;