1.使用视图解析器实现转发
package com.lixv.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/aaa")
public class HelloController01 {
@RequestMapping(value = "/a1/{a}/{b}",method = RequestMethod.GET)
@GetMapping("/a1/{a}/{b}")
public String a1(@PathVariable int a,@PathVariable int b, Model model){
model.addAttribute("msg","结果为"+ (a+b));
return "test";
}
}
package com.lixv.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws Exception {
ModelAndView mv = new ModelAndView();
String result = "HelloSpringMVC";
mv.addObject("msg",result);
mv.setViewName("test");
return mv;
}
}
- 返回字符串或者返回ModelAndView都可以实现转发
- 转发的字符串会经过视图解析器,将其拼接为需要的路径
2.使用视图解析器实现重定向
package com.lixv.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws Exception {
ModelAndView mv = new ModelAndView();
String result = "HelloSpringMVC";
mv.addObject("msg",result);
mv.setViewName("redirect:/test.jsp");
return mv;
}
}
package com.lixv.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/aaa")
public class HelloController01 {
@RequestMapping(value = "/a1/{a}/{b}",method = RequestMethod.GET)
@GetMapping("/a1/{a}/{b}")
public String a1(@PathVariable int a,@PathVariable int b, Model model){
model.addAttribute("msg","结果为"+ (a+b));
return "redirect:/test";
}
}
- 将ModelAndView的viewName或返回结果前加上redirect:/即可