java如何在不加载JSP的情况下将列表传递到JSP页面
我在controller中使用Spring MVC框架ModelAndView
方法来显示页面。在页面上,我有一个元素下拉列表元素和表格。在下拉列表中选择选项时,我将元素的Id传递给控制器,并查询所选选项的结果。我正在使用Hibernate从数据库中获取数据。因此,结果是以对象列表的形式出现。我必须在表格中填充这个结果
下面的代码将显示一个JSP,并将列表引用传递给JSP。我正在使用该引用填充页面上的选项
代码:
List<String> users = new ArrayList<String>();
ObjectMapper objectmapper = new ObjectMapper();
String string = "";
ModelAndView model = new ModelAndView("xxxx");
containerList = mapper.writeValueAsString(users);
List<Intermediate> list = getIntermediateList();
model.addObject("IntermediateList" , List);
return model;
JSP代码:
<td>Intermediate</td>
<td>
<select class="form-control margin" id = "dpd" >
<option value="0" selected>--Select--</option>
<c:forEach var="list" items="${IntermediateList}">
<option label="${list.name}" value="${item.id}"></option>
</c:forEach>
</select>
</td>
从下拉列表中选择一个选项后,它将进行ajax调用,并将所选Id传递给控制器方法:
Ajax调用代码:
$("#dpd").change(function(e){
var intermediate = $("#dpd").val();
var data = {
Intermediate : intermediate
};
$.ajax({
method : 'POST',
url : 'intermediateUsers',
data : data ,
success : function(result) {
alert("Success");
}
,
error : function(result) {
alert('An error occurred.');
}
});
用于查询列表的控制器代码:
@RequestMapping("/intermediateUsers")
@ResponseBody
public List<Users> intermediateUsers(@RequestParam(value = "intermediate" ,required = false) String intermediate) {
List<Users> users = null;
int selection = Integer.parseInt(intermediate);
users = service.intermediateUsers(selection);
return users;
}
到目前为止,它运行良好,我能够根据所选选项获得用户列表。 请建议我如何将这个列表传递给JSP,不是通过加载整个页面,而是通过只加载table元素来填充列表。我尝试了很多方法,比如将列表转换为JSONObject,但都没有成功
# 1 楼答案
你可以用这样的东西