• /**
     * @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="/test4",method=RequestMethod.POST)
        public String test4(){
            System.out.println("测试4");
            return SUCCESS;

    }

  • /**
         * 了解 : 可以使用params 和headers 来更加精确的映射请求
         * params 和 headers 支持简单的表达式
         * @return
         */
        @RequestMapping(value="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="username") String un,
                 @RequestParam(value="age",required=false,defaultValue="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={"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="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)的更多相关文章

  1. SpringMVC常用注解實例詳解3:@ResponseBody

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

  2. SpringMVC常用注解實例詳解2:@ModelAttribute

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

  3. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

  4. SpringMVC常用注解@Controller,@Service,@repository,@Component

    SpringMVC常用注解@Controller,@Service,@repository,@Component controller层使用@controller注解 @Controller 用于标记 ...

  5. 一 : springmvc常用注解

    springmvc常用注解详解1.@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层 ...

  6. 转:springmvc常用注解标签详解

    Spring5:@Autowired注解.@Resource注解和@Service注解 - IT·达人 - 博客园--这篇顺序渐进,讲得超级好--此人博客很不错http://www.cnblogs.c ...

  7. SpringMVC 常用注解 详解

    SpringMVC 常用注解 详解 SpringMVC 常用注解 1.@RequestMapping                                      路径映射 2.@Requ ...

  8. Spring 和 SpringMVC 常用注解和配置(@Autowired、@Resource、@Component、@Repository、@Service、@Controller的区别)

    Spring 常用注解 总结内容 一.Spring部分 1.声明bean的注解 2.注入bean的注解 3.java配置类相关注解 4.切面(AOP)相关注解 5.事务注解 6.@Bean的属性支持 ...

  9. SpringMVC常用注解,返回方式,路径匹配形式,验证

    常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping ...

  10. SpringMVC 常用注解

    本文参考了博客,具体请见:http://www.cnblogs.com/leskang/p/5445698.html Spring MVC的常用注解 1.@Controller @Controller ...

随机推荐

  1. TP-LINK WR941 DD-WRT刷回OpenWRT及OpenWRT刷回原厂固件

    1.DD-Wrt 刷回 OpenWrt A.从官网下载固件: root@TL-DDWRT:/tmp# wget http://downloads.openwrt.org/barrier_breaker ...

  2. UVa 11987 Almost Union-Find(支持删除操作的并查集)

    传送门 Description I hope you know the beautiful Union-Find structure. In this problem, you’re to imple ...

  3. 创建线注记LineElement

    1.根据2点创建一条线 /// <summary> /// 创建线 /// </summary> /// <param name="pnt1"> ...

  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】

    最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...

  5. Debugging D Program on Windows

    http://x64dbg.com/ http://www.ollydbg.de/version2.html

  6. [UML]UML系列——用例图Use Case

    用例图的概念 用例图是描述用例.参与者以及它们之间关系的图. 用例图的作用 用例图是从用户的角度来描述对信息系统的需求,分析产品的功能和行为. 用例图定义和描述了系统的外部可见行为,是分析.设计直至组 ...

  7. [ios基础]IOS应用程序的生命周期问题

    —程序的生命周期         a.程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程         b.每一个IOS应用程序都包含一个UIApplication对象,IOS系统通过该U ...

  8. WampServer数据库导入sql文件

    WampServer中MySQL如何导入sql文件: http://jingyan.baidu.com/article/3c343ff7f9c7940d377963c0.html

  9. C/C++的开发环境安装

    sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install cmake sudo apt-get install ma ...

  10. 【转】4G内存下MySQL修改配置文件以优化效率(来自discuz)

    摘要:公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库. ...