• /**
     * @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. 创建NetWorkDataset---FileGDB篇

    /// <summary> /// 创建NetWorkDataset /// </summary> /// <returns>INetworkDataset.< ...

  2. js自适应屏幕高度

    //自适应屏幕高度 $(window).resize(function() { hightChange(); }); function hightChange(){ ; $();// iframe i ...

  3. Android 四大组件之Service

    ---恢复内容开始--- 1,Service的生命周期

  4. css3动画简介以及动画库animate.css的使用

    在这个年代,你要是不懂一点点css3的知识,你都不好意思说你是个美工.美你妹啊,请叫我前端工程师好不好.呃..好吧,攻城尸...呵呵,作为一个攻城尸,没有点高端大气上档次的东西怎么能行呢,那么css3 ...

  5. 【转载】使用Pandas对数据进行筛选和排序

    使用Pandas对数据进行筛选和排序 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas对数据进行筛选和排序 目录: sort() 对单列数据进行排序 对多列数据进行排序 获取金额最小前10项 ...

  6. JavaScript getComputedStyle

    我们使用 element.style 也可以获取元素的CSS样式声明对象,但是其与 getComputedStyle 方法还是有一些差异的. 首先,element.style 是可读可写的,而 get ...

  7. R语言爬虫初尝试-基于RVEST包学习

    注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...

  8. R语言 ETL+统计+可视化

    这篇文章...还是看文章吧 导入QQ群信息,进行ETL,将其规范化 计算哪些QQ发言较多 计算一天中哪些时段发言较多 计算统计内所有天的日发言量 setwd("C:/Users/liyi/D ...

  9. Java牛人

    Java领域有很多著名的人物,他们为Java社区编写框架.产品.工具或撰写书籍改变了Java编程的方式.本文是<最受欢迎的8位Java牛人>的2.0版本. PS:排名不分先后.本文的信息整 ...

  10. JS表单验证-12个常用的JS表单验证

    JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...