事先在spring的xml中配置了视图控制器的前后缀:
<!--配置controller中方法的返回值的前后缀,简化逻辑视图名称 比如 return "/WEB-INF/views/ok.jsp 前缀为 /WEB-INF/views 后缀为 .jsp 因为我们在访问页面的时候变化的更多是/WEB-INF/views/xxx.jsp 中的 xxx --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" name="viewResolver"><!--默认视图解析器--> <!--前缀:return "/WEB-INF/views/ok.jsp" 中的/WEB-INF/views 前面的部分--> <property name="prefix" value="/WEB-INF/views/"></property> <!--配置后缀--> <property name="suffix" value=".jsp"></property> </bean>
这样在请求处理方法return时,默认转发的就是加上了前后缀的路径:
比如 return "ok" 实际上就是转发的 /WEB-INF/views/ok.jsp ,那么想要转发到 login.jsp 该怎么使用呢?
只需要在请求处理方法的 return 中显式地加上 forward:/login.jsp 就行了;
比如:
package cn.cdulm.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ResponseController { @RequestMapping("/res1") public String res1(){ return "forward:/login.jsp"; } }
访问映射地址:
成功!
由此可知:加上forward后就不会转交给视图解析器进行解析。