app开发者平台在数字化时代的重要性与发展趋势解析
693
2022-12-04
使用springmvc配置视图解析器和重定向方式
目录springmvc配置视图解析器和重定向为什么需要配置视图解析器配置步骤解决配置视图解析器带来的问题重定向配置多个视图解析器springmvccontroller
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://jd.com";
}
配置多个视图解析器
springmvc
controller
@Controller
@Scope("prototype")
@RequestMapping("/viewResolvHwOhiZxyhwer")
public class ViewResolverController {
@RequestMapping("/t1")
public String t1() {
return "index";// webinfo/jsp/index
}
@RequestMapping("/t2")
public String t2() {
return "htmlindex";// webinfo/html/index
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~