业务场景:页面上有一个课程下拉框,点击这个下拉框更换课程的同时将该课程的课程编号回显到另一个input域中。该过程是异步的。下面介绍js和controller的写法。
课程下拉框:
课程代码域:
js写法:
function changeSubject(id){
$.getJSON("${ctx}/base/subject/findSubjectByid?id="+id,function(data){
//console.log(data);控制台打印出数据结构
$("#subject-code").attr("value",data.code);
});
}
controller写法:
@ResponseBody
@RequestMapping(value="findSubjectByid")
public JSONObject findSubjectByid(@RequestParam("id") String id) {
Map<String, Object> map = Maps.newHashMap();
Subject subject = subjectService.get(id);
map.put("id", subject.getId());
map.put("code", subject.getCode());
JSONObject json = JSONObject.fromObject(map);
return json;
}
因为这里只需要返回一条记录,所以controller处理时使用的是JSONObject,返回一个json对象。
如果需要返回多条记录,只需要将JSONObject换成JSONArray即可。