SpringMVC 控制器中方法之间的跳转(客户端跳转(redirect)和服务器端跳转(forward))

来源:互联网 发布:淘宝网店组织架构 编辑:程序博客网 时间:2024/05/20 14:42

SpringMVC 控制器中方法之间的跳转(客户端跳转(redirect)和服务器端跳转(forward))

示例代码:


package cn.sz.hcq.control;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;import cn.sz.hcq.pojo.Users;@Controller@RequestMapping("uc")public class UserController {// 处理登录的控制器@RequestMapping(value = "islogin", method = RequestMethod.POST)public ModelAndView checkLogin(Users users) {ModelAndView mav = new ModelAndView();if (users.getLoginname().equals("lisi")&& users.getLoginpwd().equals("123")) {users.setRealname("李四");// 返回的数据mav.addObject("users", users);// 服务器跳转(转发)// mav.setViewName("forward:/uc/showinfo");// 客户端跳转(重定向)mav.setViewName("redirect:/uc/showinfo");} else {mav.addObject("msg", "用户名或者密码错误");// 跳转的页面mav.setViewName("login");}return mav;}// 显示信息的控制器@RequestMapping(value = "showinfo", method = RequestMethod.GET)public String showInfo(Model model) {System.out.println("showinfo控制器...");String msg = "showinfo提示的信息";model.addAttribute("msg", msg);return "show";}}


SpringMVC 控制器中方法之间的跳转总结:


服务器跳转和客户端跳转的区别:
1.服务器跳转时,地址栏的地址不改变;而客户端跳转的时候,地址栏的地址是会变化的;
2.服务器跳转的时候,能够通过request(或者是 model)来传递数据;而客户端跳转的时候是不能传递数据的


对于服务器端跳转(前后两个控制器的处理方式必须一致,要么都是get,要么都是post):
第一个控制器是post,那么就只能跳转到其他post方式的控制器里面
第一个控制器是get,那么就只能跳转到其他get方法的控制器里面 

对于客户端跳转(不管原来是get,还是post,都只能跳转到其他get方式的控制器里面)
第一个控制器是get,那么只能跳转到其他get方式的控制器里面
第一个控制器是post,只能跳转到其他get方式的控制器里面



阅读全文
0 0
原创粉丝点击