• /**
     * @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. gulp同步执行任务

    使用插件:gulp-sync,npm install --save-dev gulp-sync 使用方法参考:https://www.npmjs.com/package/gulp-sync 这些插件也 ...

  2. sql语句的单双引号问题

    $current_account_url='<a class="mini-button" iconcls="icon-edit" onclick=&quo ...

  3. 构建兼容浏览器的Angularjs web应用

    背景 随着mvvm逐渐成熟,现在使用jQuery构建web应用已经显得过时了,而且使用jQuery需要编写更多的代码去控制dom的取值.赋值.绑定事件等,而mvv从底层实现了对以上操作的支持,让程序员 ...

  4. 使用 Eclipse 调试 Java 程序的 10 个技巧

    你应该看过一些如<关于调试的N件事>这类很流行的帖子 .假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方 ...

  5. 30个要点帮你完成java代码优化

    通过java代码规范来优化程序,优化内存使用情况,防止内存泄露 可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常包含两方面的内容 ...

  6. JVM内存模型、指令重排、内存屏障概念解析

    在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器.运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要.否则,你很难搞清楚哪 ...

  7. linux集群时钟问题

    一.ntpd与ntpdate的区别: 摘自:ntpd与ntpdate的区别 - 百事乐 - 博客园  http://www.cnblogs.com/liuyou/archive/2012/07/29/ ...

  8. jquery 幻灯片 左右滚动

    使用jquery封装的一个幻灯片插件 写的好差  参考了别人写的 后面再重构 现在这个应该可以直接用了 主要实现思路就是 添加当前选中状态 index相对应的 选中的图总是在第一位(也就是加选中状态的 ...

  9. codevs2572 路面修整

    题目描述 Description Mr. Ling打算好好修一下学校门口的那条凹凸不平的路.按照Mr. Ling的设想,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同 ...

  10. 守护进程demon.c

    1 #include <stdio.h> #include <unistd.h> #include <errno.h> #include <time.h> ...