定义UserService接口,用UserServiceImpl实现该接口,覆写deleteUser方法,并且在HttpTestController调用此方法,实现delete请求的参数传递。
1 get请求方式
@RequestMapping(value = "/map.json", method = {RequestMethod.GET,})
@ResponseBody
public Map map(){
Map map = new HashMap();
map.put("name","cbhengboying");
map.put("sex","man");
map.put("age",22);
List list = new ArrayList();
list.add("red");
list.add("black");
list.add("blue");
list.add("yellow");
map.put("colors",list);
return map;
}
效果图:
2 post请求方式
@RequestMapping(value = "post",method = RequestMethod.POST)
@ResponseBody
public User post( @RequestBody User user){
return user;
}
效果图:
3 put请求方式
@RequestMapping(value = "put",method = RequestMethod.PUT)
@ResponseBody
public User put( @RequestBody User user){
return user;
}
效果图:
4 delete请求方式
@RequestMapping(value = "/delete/{id}",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable("id") Long id) throws Exception{
String result = userService.deleteUser(id);
System.out.println(result + "service");
return "删除了"+ id;
}
效果图:
以下是user的相关实体
public class User {
private Long id;
private String name;
private Integer age;
public Long getId() {
return id;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
}
注:常用到的注解
@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
@Service:用于标注业务层组件。
@RestController:用于标注控制层组件(如struts中的action),包含 @Controller和@ResponseBody。
@AutoWired:byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
@RequestBody: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
@ResponseBody:该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
@PathVariable:当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。