刚接触在ssm中使用ajax请求,之前用PHP来写的时候接收返回数据觉得挺简单的,但在java这边的ssm就有点不同了,在这里写一下刚测试成功的demo。
注:前端搭建就不累赘了,用js还是jq看个人喜好,个人觉得用jq来写ajax会比较简洁明了,下面我也会是用jq的方式来写。
一、在pom.xml中导入json和jackson包,导入这些包才能使用注解方式来封装json数据。
<!-- jackson包-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
<!-- json包-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
二、前端jq部分ajax请求代码
<script type="text/javascript">
function useAjax() {
$.ajax({
url: "ajax.do",
type: 'post',
dataType: 'json',
data: {name:"你好"},
success:return_json
});
function return_json(json){
alert(json.name);
}
}
</script>
<button onclick="useAjax()">ajax请求</button>
三、controller中接收处理代码。
1)处理方式一,使用RequestParam接收值并传递。
@RequestMapping(value = "/ajax.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject useAjax(@RequestParam("name") String parameter){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", parameter);
return jsonObject;
}
2)方式二,使用HttpServletRequest接收数据。
@RequestMapping(value = "/ajax.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject ajaxdemo(HttpServletRequest req){
JSONObject jsonObject = new JSONObject();
String parameter = req.getParameter("name");
jsonObject.put("name", parameter);
return jsonObject;
}
四、主要部分代码就这么多了,这个demo是基于ssm已经搭建好了的,下面贴一下运行截图。