首页 > 代码库 > SpringMVC传值、转发、重定向例子

SpringMVC传值、转发、重定向例子

  1. 练习接收页面参数值
    1. 使用request
    2. 使用@RequestParam注解
    3. 使用实体对象
  2. 练习向页面传出数据
    1. 使用ModelAndView对象
    2. 使用ModelMap对象
    3. 使用@ModelAttribute注解
  3. 练习使用session
    1. 在Controller方法参数上直接声明HttpSession即可使用
  4. 练习重定向
    1. 使用RedirectView
    2. 使用redirect:
package web;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.view.RedirectView;import entity.User;//非注解方式//public class HelloController implements Controller {//////    public ModelAndView handleRequest(HttpServletRequest request,//            HttpServletResponse response) throws Exception {//        System.out.println("Hello, Controller.");//        return new ModelAndView("jsp/hello");//    }////}@Controller@RequestMapping("/demo")public class HelloController{    private Integer age=22;        @RequestMapping("hello.do")    public ModelAndView hello(HttpServletRequest request,            HttpServletResponse response) throws Exception{           return new ModelAndView("jsp/hello");    }        /**     * 测试request接收参数*/    @RequestMapping("test1.do")    public ModelAndView test1(HttpServletRequest req){        String userName = req.getParameter("userName");        String password = req.getParameter("password");        System.out.println(userName);        System.out.println(password);        return new ModelAndView("jsp/hello");    }        /**     * 测试sping会自动将表单参数注入到方法参数       */    @RequestMapping("test2.do")    public ModelAndView test2(String userName,            @RequestParam("password") String pwd){        System.out.println(userName+","+pwd);        return new ModelAndView("jsp/hello");    }        /**     * 测试对象接收参数     */    @RequestMapping("test3.do")    public ModelAndView test3(User user){        System.out.println(user);        return new ModelAndView("jsp/hello");    }        /**     * 使用ModelAndView传出参数 内部 HttpServletRequest的Attribute传递到jsp页面     */    @RequestMapping("test4.do")    public ModelAndView test4(User user){        Map<String, Object> data = http://www.mamicode.com/new HashMap<String, Object>();        data.put("user", user);        return new ModelAndView("jsp/hello",data);    }        /**     * 使用ModelMap传出参数   内部HttpServletRequest的Attribute传递到jsp页面     */    @RequestMapping("test5.do")    public ModelAndView test5(User user,ModelMap modelMap){        modelMap.put("user", user);        return new ModelAndView("jsp/hello");    }        /**     * 使用ModelAttribute 内部HttpServletRequest的Attribute传递到jsp页面     * 在Contoller的参数部分或者bean属性方法上使用     */    @RequestMapping("test6.do")    public ModelAndView test6(@ModelAttribute("user")User user){        return new ModelAndView("jsp/hello");    }        @ModelAttribute("age")    public Integer getAge(){        return age;    }        /**     * session存储   可以使用HttpServletRequest的getSession方法访问     */    @RequestMapping("test7.do")    public ModelAndView test7(HttpServletRequest req){        HttpSession session = req.getSession();        session.setAttribute("salary", 6000.0);        return new ModelAndView("jsp/hello");    }        //返回String 转发    @RequestMapping("/test8.do")    public String test8(User user, ModelMap model) {        model.addAttribute("user", user);        return "jsp/hello";    }        /**     * 错误页面     */    @RequestMapping("test9.do")    public String test9(){        return "error/error";    }        /**     *使用RedirectView重定向     */    @RequestMapping("test10")    public ModelAndView test10(User user){        if(user.getUserName().equals("123")){            return new ModelAndView("jsp/hello");//test10.do 转发        }else{            return new ModelAndView(new RedirectView("test9.do"));//test9.do?age=22 重定向        }    }        /**     * 使用redirect重定向     */    @RequestMapping("test11")    public String test11(User user){        if(user.getUserName().equals("123")){            return "jsp/hello";        }else{            return "redirect:test9.do";        }    }}

 

user实体

package com.tarena.entity;import java.io.Serializable;public class User implements Serializable {    private Integer id;    private String userName;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

 

SpringMVC传值、转发、重定向例子