【发布时间】:2015-12-21 12:57:10
【问题描述】:
我在控制器中使用 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,而不是通过加载整个页面,而是通过仅加载表格元素来填充列表。我尝试了很多方法,例如将该列表转换为 JSONObject,但没有任何效果。
【问题讨论】:
标签: java hibernate list jsp spring-mvc