首页 > 代码库 > SpringMVC 常用注解(1)
SpringMVC 常用注解(1)
- /*** @RequestMapping 除了修饰方法 还可以修饰类* 1).类定义处:提供初步的请求映射信息,相当于WEB应用的根目录* 2).方法定义处,提供进一步的细分映射信息,相对于类定义处的URL.若类定义处没有标注的话,* 则方法处的标记URL相当于WEB应用的根目录* @author Hh。**/@Controller@RequestMapping("springmvc")public class Test3 {private static final String SUCCESS = "success";@RequestMapping("/test3")public String test3(){System.out.println("测试");return SUCCESS;}
- /** 常用:使用method属性来制定请求方式*/@RequestMapping(value="http://www.mamicode.com/test4",method=RequestMethod.POST)public String test4(){System.out.println("测试4");return SUCCESS;}
- /*** 了解 : 可以使用params 和headers 来更加精确的映射请求* params 和 headers 支持简单的表达式* @return*/@RequestMapping(value="http://www.mamicode.com/test5",params={"username","age!=10"},headers={})public String test5(){System.out.println("测试5");return SUCCESS;}
- /*** 了解: @RequestMapping 支持通配符的情况* @return*/@RequestMapping("/test6/*/abc")public String test6(){System.out.println("test6");return SUCCESS;}
- /*** @PathVariable("id") 可以来听蛇url中的占位符到目标参数方法中* @return*/@RequestMapping("/test7/{id}")public String test7(@PathVariable("id") Integer id){System.out.println(id);return SUCCESS;
- /** @RequestParam 来映射请求参数* value 值即请求参数的参数名* required 该参数是否必须 默认为true* defaultValue 请求参数的默认值*/@RequestMapping("/test8")public String test8(@RequestParam(value="http://www.mamicode.com/username") String un,@RequestParam(value="http://www.mamicode.com/age",required=false,defaultValue="http://www.mamicode.com/0")int age){System.out.println(un+"***"+age);return SUCCESS;}
- /** 了解* @CookieValue: 映射一个cookie值 属性同前面的@RequestParams*/@RequestMapping("/test9")public String test9(@CookieValue("JSESSIONID") String sessionId){System.out.println("test9"+sessionId);return SUCCESS;}
- /** Spring MVC 会按请求参数名和POJO 属性名进行自动匹配,* 自动为该对象填充属性值, 支持级联属性* 如:dept.deptID dept.address.tel等*/@RequestMapping("/test11")public String test11(Man man){System.out.println("test11:"+man);return SUCCESS;}
- /** 可以使用Servlet原声API作为目标方法的参数* HttpServletRequest* HttpServletResponse* HttpSession* java.security.Principal* Locale InptuStream* OutputStream* Reader* Writer*/@RequestMapping("/test10")public void test10(HttpServletRequest request,HttpServletResponse response ,Writer out) throws IOException {System.out.println("test10" + request + "," + response);out.write("hello");// return SUCCESS;}
- /** 目标方法的返回值可是是modelandview类型* 其中可以包含视图和模型信息* SpringMVC 会把ModelAndView 中的model 数据放入到 request 域对象中*/@RequestMapping("/test12")public ModelAndView testModelAndView(){String viewName= SUCCESS;ModelAndView modelAndView = new ModelAndView(viewName);//添加模型数据到ModelAndView 中.modelAndView.addObject("time",new Date());return modelAndView;}
- 信息打印方法
- time:${requestScope.time}<br>name:${requestScope.name}
- /** 目标方法可以添加Map(也可以是Model 类型或 ModelMap类型)类型的参数*/@RequestMapping("/test13")public String testMap(Map<String, Object> map){System.out.println(map.getClass().getName());map.put("name", Arrays.asList("Tom","Jerry","Mike"));return SUCCESS;}
- /** SessionAttributes(value=http://www.mamicode.com/{"man"},types={String.class})* 除了可以通过属性名指定需要放到回话中的属性外(实际上使用过的value属性值)* 还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(实际上使用的是type属性值)* 注意:该注解只能放在类上面,而不能修饰方法*/@RequestMapping("/test14")public String testSessionAttribute(Map<String,Object> map){Man man = new Man("Tom", "123456", "123@qq.com", 12);map.put("man", man);map.put("school", "jereh");return SUCCESS;}
- 显示类属性
- @RequestMapping("/test15")public ModelAndView test15(Man man){String viewName = SUCCESS;ModelAndView modelAndView = new ModelAndView(viewName);modelAndView.addObject("man",new Man("Tom", "123456", "123@qq.com", 12));return modelAndView;}
/*
* 有@ModelAttribute标记的方法会在每个目标方法执行之前被Springmvc调用!
*/
@RequestMapping("/test17")
public String testModelAttribute(Man man){
System.out.println("修改:"+man);
return SUCCESS;
}
/*
* 运行流程
* 1.执行 @ModelAttribute 注解修饰的方法:从数据库中取出对象,把对象放入到了map中,键为man
* 2.SpringMVC 从 Map 中取出 man 对象, 并把表单的请求参数赋给该对象的对应属性
* 3.SpringMVC把上述对象传入目标方法的参数
*
* 注意: 在@ModelAttribute 修饰的方法中,放入到Map时的键需要和目标方法入参类型的第一个字母小写的字符串一样
*/
@ModelAttribute
public void getMan(@RequestParam(value="http://www.mamicode.com/id",required=false) Integer id,
Map<String, Object> map){
System.out.println("执行了");
if (id!=null) {
//模拟从数据库中获取对象
Man man = new Man(1, "Tom", "123456", "123@qq.com", 12);
System.out.println("从数据库中获取一个对象:"+man);
map.put("man",man );
}
}
SpringMVC 常用注解(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。