关于Handler之间的跳转技巧和视图解析器viewClass属性

关于Handler之间的跳转技巧和视图解析器viewClass属性

老师,在学习项目过程中,发现老师多次使用return "redirect:xxx";的语句来实现Handler之间的控制器处理方法的跳转。我想学一下这个redirect应该是怎么使用的。

  1. 由于在spring核心配置文件配置了视图解析器,在返回的时候会对路径进行前缀和后缀的添加,也就是返回的字符串是/WEB-INF/pages/redirect:xxx.jsp,我想问下,如果在xxx前面加个/,即/WEB-INF/pages/redirect:/xxx.jsp则代表访问的是哪个目录下的xxx.jsp页面?也就是说xxx前面的/是什么意思?

  2. 先前学请求转发和重定向的时候,有老师说请求转发和重定向方法中的路径参数前面的“/”含义不一样,一个是当前项目根目录,一个是不带上下文的服务器根目录,那通过return"redirect:to_change_password";转发的页面实质是请求转发还是重定向原理呢?即request中的变量是否仍旧有效?

在学习springMVC框架初期,老师演示了视图解析器的配置,当时只配置了往返回的字符串类型添加前缀后缀的属性,当然这也能正常访问。本次项目的视图解析器:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

在这里,增加了一条

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

视频中老师说这属性是指明按什么格式什么规律去转换,那我想value设置的应该就是转换类。我有点纳闷,难道视图解析还能有格式的选择的?什么意思啊?这个还有其他的值么,分别又是有什么作用呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好。下面来一条条解答你的疑惑:

1、由于视图解析的作用,"redirect: xxx.jsp"返回的路径为/WEB-INF/pages/xxx.jsp,"redirect: /xxx.jsp"返回的路径为/WEB-INF/pages//xxx.jsp。都是不影响的,都可以访问

2、return "redirect"是重定向,Request会丢失,其中的变量会失效。

3、如果在JSP中使用JSTL标签来处理格式化和信息的话,那么就会让InternalResourceViewResolver将视图解析为JstlView。但如果不配置viewClass的话,默认是InternalResourceView。

如果想让InternalResourceViewResolver将视图解析 为JstlView,而不是InternalResourceView的话,那么我们只需设置它的viewClass属性即可

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

也就是说,用到jstl中fmt标签的时候,需要配置这个属性。

如果解答了同学的疑问,望采纳~

祝学习愉快~


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师