千家信息网

如何使用springmvc配置视图解析器和重定向

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下如何使用springmvc配置视图解析器和重定向,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!springmvc配置视图解析器和重定向为什么需要配置视图解析器看图配
千家信息网最后更新 2025年01月19日如何使用springmvc配置视图解析器和重定向

小编给大家分享一下如何使用springmvc配置视图解析器和重定向,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

springmvc配置视图解析器和重定向

为什么需要配置视图解析器

看图

配置步骤

第一步:需要在springmvc.xml配置

                                                                                

第二步:配置视图解析器后的controller代码 Controller方法返回字符串表示逻辑视图名,通过视图解析器解析为物理视图地址。 此时默认的物理视图地址为:视图前缀+返回值+视图后缀

      /*         * 方法返回ModelAndView 方式         * ModelAndView         *    Model : 模型,数据         *  View :视图         * 将需要共享的数据也跳转的视图封装到ModelAndView对象中,方法直接返回即可         *           *  默认只能使用请求转发         */        @RequestMapping("/method2")        public ModelAndView method2() {                                ModelAndView mv = new ModelAndView();                //共享数据                mv.addObject("username", "莉莉");                //设置视图地址                //配置视图解析器前后缀之前                //mv.setViewName("/WEB-INF/view/hello.jsp");                //配置视图解析器前后缀之后                mv.setViewName("hello");                                return mv;        }        /*         * 方法返回String 字符串方式         *          * 方法返回的字符就是要跳转的地址         *          * 在方法中注入一个Model 对象,在Model中共享数据         *          * 默认使用请求转发         */        @RequestMapping("/method3")        public String method3(Model m) {                System.out.println(m.getClass().getName());                //共享数据                m.addAttribute("username", "吉姆");                //配置视图解析器前后缀之前                //return "/WEB-INF/view/response.jsp";                //配置视图解析器前后缀之后                return "response";        }

解决配置视图解析器带来的问题

如果直接使用视图解析器的配置开发,那么必须保证视图解析器前缀目录下面有对应的页面文件才能跳转,否则报错


默认页面跳转也只能使用请求转发跳转,不能使用重定向


需要解决问题: 除了使用视图解析器对应规则的开发,用户还得自定义跳转方式,和自定义跳转页面 方案: 使用视图解析器的 请求转发和重定向配置,可以打破默认的规则

public static final String REDIRECT_URL_PREFIX = "redirect:"; public static final String FORWARD_URL_PREFIX = "forward:";

    /*         *          * 问题1:上述两种方法默认只能进行请求转发跳转,如何进行重定向跳转?         * 问题2: 跳转的页面永远只能按照视图解析的前后缀路径放,如何页面放在其他目录下面也能跳转         *          * 解决方案:使用视图解析器中自定义的页面跳转功能(使用这种,只适用返回String字符串的方式)         *  在返回的字符串前面加上前缀          *  重定向         *       redired:跳转的页面         *  请求转发         *       forward:要跳转的页面         *           *                */                //自定义请求转发页面(打破默认的视图解析器前后缀规则跳转的页面)                @RequestMapping("/method4")        public String method4(Model m) {                m.addAttribute("username", "韩梅梅");                return "forward:/WEB-INF/user_list.jsp";        }

重定向

    //自定义重定向        @RequestMapping("/method5")        public String method5() {                return "redirect:http://www.jd.com";        }

配置多个视图解析器

springmvc

                                                                                                        

controller

@Controller@Scope("prototype")@RequestMapping("/viewResolver")public class ViewResolverController {    @RequestMapping("/t1")    public String t1() {        return "index";// webinfo/jsp/index    }    @RequestMapping("/t2")    public String t2() {        return "htmlindex";// webinfo/html/index    }}

看完了这篇文章,相信你对"如何使用springmvc配置视图解析器和重定向"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0