SpringMVC(八)轉發與重定向
阿新 • • 發佈:2018-11-30
SpringMVC(八)轉發與重定向
關於轉發與重定向的定義和區別網上已經有很多介紹了,這裡就不在贅述了。
下面通過一段程式碼簡單的介紹下Spring MVC中如何使用轉發與重定向
package com.lay.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework. web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* @Description:轉發與重定向控制器
* @Author: lay
* @Date: Created in 16:03 2018/11/15
* @Modified By:IntelliJ IDEA
*/
@Controller
@RequestMapping("/skip")
public class RedirectController {
//轉發 不帶引數
@GetMapping("/forwardNoArgs")
public String forwardNoArgs(){
return "forward:/skip/forward";
}
//轉發 帶引數
@GetMapping("/forwardWithArgs")
public String forwardWithArgs(Long id, HttpServletRequest request) {
request.setAttribute("id",id);
return "forward:/skip/forward";
}
//轉發頁面
@GetMapping("/forward")
public String forward(HttpServletRequest request, Model model){
Long id= (Long) request.getAttribute("id");
model.addAttribute("id",id);
System.out.println(id);
return "skip/forward";
}
//重定向 不帶引數
@GetMapping("/redirectNoArgs")
public String redirectNoArgs(){
return "redirect:/skip/redirect";
}
//重定向 url引數
@GetMapping("/redirectWithArgs")
public String redirectWithArgs(Long id){
return "redirect:/skip/redirect?id="+id;
}
//重定向 引數為java物件
@GetMapping("/redirectWithObject")
public String redirectWithObject(RedirectAttributes redirectAttributes){
long id=123;
redirectAttributes.addAttribute("id",id);
return "redirect:/skip/redirect";
}
//重定向頁面
@GetMapping("/redirect")
public String redirect(Long id,Model model,RedirectAttributes redirectAttributes){
model.addAttribute("id",id);
return "/skip/redirect";
}
}