SpringMVC中ajax的四种使用方式
程序员文章站
2022-05-15 18:21:43
...
干货,有以下四种方式
- 直接请求资源,通过HttpServletResponse返回
- 通过注解@ResponseBody返回
- 请求和响应的JSON格式,使用jackson.jar包的支持
- 直接返回对象,容器会自动将其解析成json格式字符串
举个栗子:
ajax请求,响应的结果是普通字符串,或json字符串,然后再交由前端解析。
AjaxController.java
package com.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.entity.Person;
@Controller
@RequestMapping(value="/ajax/")
public class AjaxController {
//方式1:
@RequestMapping(value="m1")
public void m1(HttpServletResponse resp){
try {
resp.getWriter().print("hello ajax request");
} catch (IOException e) {
e.printStackTrace();
}
}
//方式2:
@RequestMapping(value="m2")
@ResponseBody
public String m2(){
return "hello ajax request";
}
//方式3:
@RequestMapping(value="m3")
@ResponseBody
public String m3(){
Person p = new Person();
p.setId(88);
p.setName("zhangsan");
p.setPwd("123456");
p.setSex("man");
p.setAge(25);
ObjectMapper om = new ObjectMapper();
try {
String json = om.writeValueAsString(p);
//{"name":"zhangsan","id":88,"age":25,"sex":"man","pwd":"123456"}
return json;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//方式4:直接返回对象,容器会帮我们将它自动转为json格式字符串
@RequestMapping(value="m4")
@ResponseBody
public Person m4(String name){
Person p = new Person();
p.setId(88);
p.setName("zhangsan");
p.setPwd("123456");
p.setSex("man");
p.setAge(25);
return p;
}
}
尤其需要注意的两点:
- 方式3:是jackson-all.jar 987K
- 方式4:需要配置如下:(不需要上面的jackson包,容器也能转换成json)
<mvc:annotation-driven/>
上一篇: vue 路由传参的四种方式
下一篇: Filter的四种请求方式