问题提出:
配置了视图解析器,控制器类中的方法执行后,SpringMvc自动拼接路径转到
/WEB-INF/pages/success.jsp
,那么如何转到hello.jsp页面而不是success.jsp页面??
1 利用相对目录
@Controller
public class HelloController {
@RequestMapping("/hello")
public String test(){
// /WEB-INF/pages/hello.jsp往上退两级目录即可
return "../../hello";
}
}
2 forward:转发页面
forward:转发到当前项目下的指定页面,且不用配置视图解析器
@Controller
public class HelloController {
@RequestMapping("/hello2")
public String test2(){
return "forward:/hello.jsp";
}
}
可以进行多次转发:
@Controller
public class HelloController {
@RequestMapping("/hello2")
public String test2(){
return "forward:/hello.jsp";
}
@RequestMapping("/hello3")
public String test3(){
return "forward:/hello2";
}
}
3 redirect:重定向页面
原生的servlet重定向时需要加项目名,SpringMvc重定向不需要加项目名
不需要配置视图解析器
@Controller
public class HelloController {
@RequestMapping("/hello4")
public String test4(){
return "redirect:/hello.jsp";
}
}
可以多次重定向:
@Controller
public class HelloController {
@RequestMapping("/hello4")
public String test4(){
return "redirect:/hello.jsp";
}
@RequestMapping("/hello5")
public String test5(){
return "redirect:/hello4";
}
}
4.利用配置将请求映射到/WEB-INF/pages/login.jsp
<a href="toLoginPage">登录页面</a>
<mvc:view-controller path="toLoginPage" view-name="login"/>
视图解析器会自动对login进行页面拼接