zoukankan      html  css  js  c++  java
  • 正确的SpringMVC进阶案例详解,60%的人没搞懂

     

    SpringMVC进阶详解

    代码实现

    springMVC的配置:

    @Configuration
    @ComponentScan(basePackages={"com.czxy.demo1.controller"})
    public class MVCConfiguration {
    
        /**
         * 设置了一个视图解析器,交给spring管理
         * @return
         */
        @Bean
        public InternalResourceViewResolver getInternalResourceViewResolver(){
            InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
            //设置前缀
            internalResourceViewResolver.setPrefix("/");
            //设置后缀
            internalResourceViewResolver.setSuffix(".jsp");
            return internalResourceViewResolver;
        }
    }
    

    Demo1Controller:

    @RequestMapping("/run5")
        public String run5(){
            System.out.println("run5");
    //        return "/demo5.jsp";
            //视图解析器会自动补全为:   /demo5.jsp
            return "demo5";
        }
    

     注意:光理论是不够的。在此顺便送大家十套2020最新JAVA架构项目实战教程及大厂面试题库,进我扣裙 :七吧伞吧零而衣零伞 (数字的谐音)转换下可以找到了,还可以跟老架构师交流

    小结:

    视图解析器: 控制器的返回值会经过视图解析器,自动补全 前缀和 后缀。

    二.实用2:​ 绕开视图解析器

    代码实现

    Demo1Controller

    @RequestMapping("/run6")
        public String run6(){
            System.out.println("run6");
            //绕开视图解析器方式一:重定向
    //        return "redirect:/demo6.html";
            //绕开视图解析器方式二:完整版的请求转发
            return "forward:/demo6.html";
        }
    

    小结:

    绕开视图解析器:

    重定向: return “redirect:/路径”;

    完整版的请求转发:return “forward:/路径”;

    三. 知识点:Controller方法返回值

    返回字符串

    三种:

    使用视图解析器(请求转发): return 资源名”;

    绕开视图解析器-请求转发:return “forward:/路径”;

    绕开视图解析器-重定向:return “redirect:/路径”;

    返回ModelAndView(SpringMVC特有)

    /*
        * 需要跳转到demo5.jsp上   ModelAndView
        * */
        @RequestMapping("/run7")
        public ModelAndView run7(){
            ModelAndView mav = new ModelAndView();
            //设置request作用域传递参数 相当于request.setAttribute
            mav.addObject("uname","煌煌");
            //设置跳转路径
            mav.setViewName("demo5");//使用视图解析器,请求转发
    //        mav.setViewName("forward:/demo5.jsp");//绕开视图解析器,请求转发
    //        mav.setViewName("redirect:/demo5.jsp");//绕开视图解析器,重定向
            return mav;
        }
    

     

    ModelAndView:springMVC专门用来封装作用域数据,并且跳转页面

    四.​​​​​​​ 知识点:@RequestMapping

    窄化请求路径

    @RequestMapping放在类名上边,设置请求前缀

    @RequestMapping放在方法名上边,设置方法对应请求路径。

    完整请求:前缀 + 请求路径

    多路径映射

    /*
    *   /项目名/d1/run8.action
    *   /项目名/d1/8run.action
    *   /项目名/d1/run88.action
    * */
    @RequestMapping(value = {"/run8","/8run","/run88"})
    public String run8(){
        System.out.println("run8");
        return "index";
    }
    

    请求方式限定

    默认情况下,不会限定请求方式,get/post或其他方式均可访问

    /*
        该方法的请求方式,仅允许POST方式
    * */
    @RequestMapping(value = {"/run9"},method = {RequestMethod.POST})
    public String run9(){
        System.out.println("run8");
        return "index";
    }
    

    今日总结:

    视图解析器:

    在控制器执行之后,为控制器补全前缀和后缀。

    Controller方法的返回值:

    demo1.jsp

    使用视图解析器:return “demo1”;

    绕开视图解析器:

    请求转发:return “forward:/demo1.jsp”;

    重定向:return “redirect:/demo1.jsp”;

    ModelAndView:封装请求数据,跳转页面

    addObject();    向request作用域保存键值对

    setViewName(); 设置跳转路径。

    @RequestMapping:为方法/类设置访问路径。

    @RequestMapping(value={“/run1”,”/1run”})

    注意:最后送大家十套2020最新JAVA架构项目实战教程及大厂面试题库,进我扣裙 :七吧伞吧零而衣零伞 (数字的谐音)转换下可以找到了,还可以跟老架构师交流

    本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

  • 相关阅读:
    File类 文件过滤器
    LinkedList类的基本方法的用法
    Execption异常 手动和自动抛除异常
    Xshell连接Linux慢问题解决办法
    Liunx网络技术管理及进程管理
    Liunx中三种网络模式配置及Xshell连接
    LInux命令英文全称
    Liunx中fstab文件详解
    20190411RAID磁盘阵列及CentOS7系统启动流程
    20190410Linux中磁盘管理及LVM(week2day1)
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12909047.html
Copyright © 2011-2022 走看看