• /**
     * @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. TYVJ P1080 N皇后

    描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 列号  1  2  3  4  5  6 -- ...

  2. 动态规划(DP)基础

    DP基础 简单dp 背包问题 记忆化搜索 简单dp 数字三角形 给一个数字构成的三角形,求从顶端走到底部的一条路径,使得路径上的和最大(或者最小). 1 2 3 6 5 4 Example_1 7 3 ...

  3. vim编辑器的使用

    I 在光标所在行的行首插入 A 在光标所在行的行尾插入 { 移动到上一段 } 移动到下一段 空格向后移动一格 H 屏幕顶部 M 屏幕中间 L 屏幕下方 n| 使光标移动到第几个字符处 ngg 移动到制 ...

  4. 《Python核心编程》 18.多线程编程(一)

    一进程和线程 1参考链接: http://www.zhihu.com/question/25532384 中OF小工和zhonyong 的回答 总结他们两的回答: 引言: 1.电脑的运行,在硬件上是C ...

  5. asp.net Literal

    常用于动态向页面添加内容 Panel panel = new Panel(); Literal literal = new Literal(); literal.Text = "<br ...

  6. 海思H264解码库 hi_h264dec_w.dll 水印问题

    上一篇   海思h264解码库 , 实现了H264帧的简单解码,但更换相机后,出现了解码视频中央出现水印的问题,水印如下图 查找网络,基本就这一篇相关的,还没给出好的解决办法. http://bbs. ...

  7. iis搭建FTP服务器

    win7下如何开启iis请参考前一篇 使用iis并搭建 iis 图片服务器 ftp登陆格式  : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名: ...

  8. GIFT-EMS礼记----青软S2SH(笔记)

    这个S2SH的项目,是这本书的一个贯穿项目,所以这里要记录一下, 看这个项目有两个目的: 1.借助这个项目,学习一下S2SH的综合配置及使用 2.借助这个项目练习一下如何做需求分析和项目架构设计. P ...

  9. JavaScript -- 小试牛刀

    //var a = parseInt(window.prompt("请输入一个数字!","")); //switch(a) { // case 1 : // c ...

  10. CSS3 @media 查询

    @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的. 媒体查询包含了一个媒体类型和CSS3规范中描述的包含一个或多个表达式的媒体属性, ...