使用springMVC框架首先需要学习一下springmvc的注解,下面是总结的几个常用的注解,仅供参考。
1.@RequestBody
注解的作用就是将页面上传入给controller的json格式字符串自动转换成java对象,
要求json的key必须等于接收的对象的属性名称
2.@ResponseBody
注解会自动将返回的java对象转换成json格式字符串
例如:@RequestBody将页面传入的json格式字符串转成java对象,
@ResponseBody又将java对象转化为json格式字符串。结果就是输出json字符串
@RequestMapping(“/sendJson”)
@ResponseBody
public Item sendJson(@RequestBody Item item) throws Exception{
System.out.println(item);
return item;
}
3.@RequestBody和@ResponseBody的区别
@RequestBody将页面传入的json格式字符串转成java对象,@ResponseBody又将java对象转化为json格式字符串
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用; 在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。 @RequestBody 注解则是将 HTTP 请求正文插入方法中,将请求体写入某个对象
4.@requestMapping
a) 使用在controller的方法上: 标记url到请求方法的映射(就是通过url能找到指定的这个方法)
b) 窄化请求映射: 就是用在controller类上,防止你起的名称和别人之间的重名.
c) 限制请求类型:
请求类型有: get, post, put, delete, option等
@RequestMapping(value=”/list”, method=RequestMethod.GET )
public ModelAndView listA() throws Exception{}
5.@RequestParam
使用@RequestParam常用于处理简单类型的绑定。
value:参数名字,即传入参的请求参数名字,如value=“item_id”表示请求的参数区中的名字为item_id的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报;
HTTP Status 400 - Required Integer parameter ‘XXXX’ is not present
defaultValue:默认值,表示如果请求中没有同名参数时的默认值
例如:
public String editItem(@RequestParam(value=”item_id”,required=true) String id) {
}
形参名称为id,但是这里使用value=” item_id”限定请求的参数名为item_id,所以页面传递参数的名必须为item_id。
注意:如果请求参数中没有item_id将抛出异常:
HTTP Status 500 - Required Integer parameter ‘item_id’ is not present
这里通过required=true限定item_id参数为必需传递,如果不传递则报400错误,可以使用defaultvalue设置默认值,即使 required=true也可以不传item_id参数值
6.@PathVariable
@RequestMapping(value=”/ viewItems/{id}”):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在 方法中使用@PathVariable获取{×××}中的×××变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
@RequestMapping(“/viewItems/{id}”)
public @ResponseBody viewItems(@PathVariable(“id”) String id, Model model) throws Exception{}
//方法中使用@PathVariable获取id的值
//调用 service查询商品信息
ItemsCustom itemsCustom = itemsService.findItemsById(id);
return itemsCustom;
}
7.@RequestParam和@PathVariable区别
在springMVC中,两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。
使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值
使用@PathVariable时,URL是这样的:http://host:port/path/参数值