业务场景:页面上有一个课程下拉框,点击这个下拉框更换课程的同时将该课程的课程编号回显到另一个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即可。