结果跳转方式
-
结果跳转方式
- 1. ModelAndView
- 2. ServletAPI
-
3. SpringMVC实现
1. ModelAndView
设置ModelAndView对象,根据view的名称,和视图解析器,跳转到指定的页面
页面的路径: {视图解析器前缀} + viewName + {视图解析器后缀}
视图解析器
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
controller类
package com.wang.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//只要实现了Controller接口的类,说明这就是一个控制器了
public class ControllerTest1 implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
//设置视图的属性
mv.addObject("msg","ControllerTest1");
//设置跳转的页面
mv.setViewName("test");
return mv;
}
}
页面的路径: /WEB-INF/jsp/test.jsp
2. ServletAPI
在controller中可以使用response和request 因为SpringMVC本质也是一个servlet!
package com.wang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
public class ModelTest1 {
@RequestMapping("/m1/t1")
public String test(HttpServletRequest req,HttpServletResponse resp) {
System.out.println(req.getSession().getId());
return "hello";
}
}
3. SpringMVC实现
1. 无需视图解析器
先将Spring配置文件中的视图解析器去掉
@Controller
public class ResultSpringMVC {
? ?@RequestMapping("/rsm/t1")
? ?public String test1(){
? ? ? ?//转发
? ? ? ?return "/index.jsp";
? }
? ?@RequestMapping("/rsm/t2")
? ?public String test2(){
? ? ? ?//转发二
? ? ? ?return "forward:/index.jsp";
? }
? ?@RequestMapping("/rsm/t3")
? ?public String test3(){
? ? ? ?//重定向
? ? ? ?return "redirect:/index.jsp";
? }
}
此时要写页面的全限定名
2. 使用视图解析器
在Spring的配置文件中配置视图解析器,注意路径的前缀与后缀
@Controller
public class ResultSpringMVC2 {
? ?@RequestMapping("/rsm2/t1")
? ?public String test1(){
? ? ? ?//转发
? ? ? ?return "test";
? }
? ?@RequestMapping("/rsm2/t2")
? ?public String test2(){
? ? ? ?//重定向
? ? ? ?return "redirect:/index.jsp";
? ? ? ?//return "redirect:hello.do"; //hello.do为另一个请求/
? }
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|