• /**
     * @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. TYVJ1338 QQ农场

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Sandytea前段时间沉迷于QQ农场中……一天夜里,他梦见来到好友X的农场上…… 描述 这个农场和游戏中略有 ...

  2. 文本框 textarea 动态显示行数(简单文本编辑器)

    工作需求做一个文本编辑器简单的. 右边输入文字,左边会显示相应的代码行.清空也会变为1. 废话不多说上代码,自己理解. <style type="text/css"> ...

  3. win7电脑怎么修改计算机用户名Administrator

    ----------------------------------- 首先,在开始中打开我的控制面板.----->>打开用户账户和家庭安全选项.----->>,继续点击用户账 ...

  4. C# winform开发:Graphics、pictureBox同时画多个矩形

    C#的System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问 重点在于获取Graphics对象,例如: Graphics g = panel1.CreateGraphics 事实 ...

  5. LYDSY热身赛 escape

    Description 给出数字N(1<=N<=10000),X(1<=x<=1000),Y(1<=Y<=1000),代表有N个敌人分布一个X行Y列的矩阵上矩形的行 ...

  6. php代码规范—2

    如何写出好的 PHP 代码? 在本文中,我们将探讨一些良好的编程习惯,这将帮助你避免代码中的缺陷. 1- 编写模块化代码 良好的PHP代码应该是模块化代码.PHP的面向对象的编程功能是一些特别强大的工 ...

  7. PHP中的变量与常量详解

    几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...

  8. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  9. Alpha版本冲刺总结——曙光初现

    No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 项目预期计划 界面设计 androi ...

  10. BZOJ2982——combination

    1.题意:求 C(n,m) % 10007 ,10007是质数咯 n和m < 2000000000 2.分析:这个东西太大了,显然不能用n!的阶乘预处理的方式搞出来,也不能用递推公式搞出来 于是 ...