zoukankan      html  css  js  c++  java
  • Spring MVC学习笔记02

    1.常用注解

    1.@Autowired,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

     <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->    
     <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    通过上面配置,当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有 @Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。

    对成员变量使用 @Autowired 后,大可将它们的 setter 方法(setCar() 和 setOffice())从 Boss 中删除。

    2.@Controller,将class定义为一个controller类。

    3.@RequestMapping ,在控制器的类及方法定义处都可标注。映射规则包括:url、请求参数、请求方法和请求头。

    4.@RequestParam,一般用于将指定的请求参数付给方法中形参。如果请求参数名称和形参名称保持一致,则不需要这种写法。

    @RequestMapping(params="method=reg5")
        public String reg5(@RequestParam("name")String a,@RequestParam("password")String b) {
           System.out.println(a+b);
           return"index";
        }

    2.常见请求参数

    @RequestMapping(value = "/index.html")
        public String loginPage1(@RequestParam("name")String a,@RequestParam("password")String b) {
            //使用@RequestParam绑定请求中的参数值
            return "login";
        }
    
        @RequestMapping(value = "/index.html")
        public String loginPage2(@CookieValue(value="sessionId",required=false) String sessionId) {
            //使用@CookieValue绑定请求中的Cookie值
            return "login";
        }
    
        @RequestMapping(value = "/index.html")
        public String loginPage3(@RequestHeader("Accept-Encoding") String encoding) {
            //使用@CookieValue绑定请求中报文头的属性值
            return "login";
        }
        @RequestMapping(value = "/index.html")
        public String loginPage4(User user) {
            //使用命令、表单对象绑定请求参数值
            return "login";
        }
        @RequestMapping(value = "/index.html")
        public String loginPage5(HttpServletRequest request,HttpServletResponse response,HttpSession session) {
            //使用Servlet API入参
            return "login";
        }
        @RequestMapping(value = "/index.html")
        public void loginPage6(OutputStream os)throws IOException {
            //使用IO对象作为入参
            Resource res=new ClassPathResource("/a.jpg");
            FileCopyUtils.copy(res.getInputStream(), os);
        }

    3.Controller类中方法返回值的处理

    1.       返回string(建议)

    a)       根据返回值找对应的显示页面。路径规则为:prefix前缀+返回值+suffix后缀组成

    b)       代码如下:

    @RequestMapping(params="method=reg4")
        public String reg4(ModelMap map) {
           System.out.println("HelloController.handleRequest()");
           return"index";
        }
    前缀为:/WEB-INF/jsp/    后缀是:.jsp
    在转发到:/WEB-INF/jsp/index.jsp

    2.       也可以返回ModelMap、ModelAndView、map、List、Set、Object、无返回值。一般建议返回字符串!

     

  • 相关阅读:
    Trie树详解及其应用
    最长回文字符串_Manacher算法_(O(n))
    设置VisualStudio以管理员身份运行
    wcf使用JetEntityFrameworkProvider.dll写access数据库时,报"操作必须使用一个可更新的查询"错误的解决办法
    data:image字符转byte[]
    ID为XXXX的进程当前未运行
    在Windows2003 server 64位系统上使用ArcEngine开发的WCF服务
    关于position的relative和absolute分别是相对于谁进行定位的
    sql语句进行写数据库时,字符串含有'的处理方式
    EF中关于日期字值的处理
  • 原文地址:https://www.cnblogs.com/mcahkf/p/5204040.html
Copyright © 2011-2022 走看看