事先在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后就不会转交给视图解析器进行解析。