@Controller负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装层一个model,并将其返回给view进行展示
@RestController = @Controller + @ResponseBody(@ResponseBody 注解是将返回的数据结构转换为 JSON 格式)
1
| @RequestMapping(value="/hello",method={RequestMethod.GET})
|
@RequestMapping用来处理请求地址映射
1
| @RequestParam(value="username",required=true,defaultValue=null)
|
@RequestParam获取请求参数,可以用在对象属性名与方法参数名不一样的场景中
@PathVariable注解用来获取 URL 参数,用于支持Restful风格的 URL,请求的URL也需要相应地有所改变。
例如:GetMapping(“user/{id}”)
@ResponseBody要写在方法名上。如果加上@ResponseBody注解,就不会走视图解析器,不会返回页面,返回的是json数据(所以你应该return字符串,而不是URL地址)。如果不加@ResponseBody,就走视图解析器,返回页面
@RequestBody用于接收前端传来的实体,要写在方法的参数前,只能发送POST请求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <!--前端JSON和js对象之间的转换--> <script type="text/javascript"> var user = { name:"秦疆", age:3, sex:"男" }; var str = JSON.stringify(user); console.log(str);
var user2 = JSON.parse(str); console.log(user2.age,user2.name,user2.sex);
</script>
|
统一解决JSON在SpringMVC中的乱码问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
|
fastJSON部分方法的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public class FastJsonDemo { public static void main(String[] args) { User user1 = new User("秦疆1号", 3, "男"); User user2 = new User("秦疆2号", 3, "男"); User user3 = new User("秦疆3号", 3, "男"); User user4 = new User("秦疆4号", 3, "男"); List<User> list = new ArrayList<User>(); list.add(user1); list.add(user2); list.add(user3); list.add(user4);
System.out.println("*******Java对象 转 JSON字符串*******"); String str1 = JSON.toJSONString(list); System.out.println("JSON.toJSONString(list)==>"+str1); String str2 = JSON.toJSONString(user1); System.out.println("JSON.toJSONString(user1)==>"+str2);
System.out.println("\n****** JSON字符串 转 Java对象*******"); User jp_user1=JSON.parseObject(str2,User.class); System.out.println("JSON.parseObject(str2,User.class)==>"+jp_user1);
System.out.println("\n****** Java对象 转 JSON对象 ******"); JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2); System.out.println("(JSONObject) JSON.toJSON(user2)==>"+jsonObject1.getString("name"));
System.out.println("\n****** JSON对象 转 Java对象 ******"); User to_java_user = JSON.toJavaObject(jsonObject1, User.class); System.out.println("JSON.toJavaObject(jsonObject1, User.class)==>"+to_java_user); } }
|
输入结果:
lombok依赖要引入的几个必要注解:
1 2 3 4 5 6
| @Data @AllArgsConstructor @NoArgsConstructor public class person(){
}
|