SpringMVC读取请求参数值和向页面传值

一.如何读取请求参数值

  1. 方式一:通过request对象
    DispatcherServlet会负责将request对象传进来(利用java反射机制分析方法的结构)。
    代码实例:

    public String login(HttpServletRequest request){
    System.out.println("login()");
    String username = request.getParameter("username");
    }
  2. 方式二:通过@RequestParam
    Dispat会负责读取请求参数值,然后赋给相应的形参。
    注:形参名必须与请求参数名一致,如果不一样,可以在形参前添加@RequestParam来说明。

    public String login2(String username, @RequestParam("pwd") String password){
    System.out.println("login2()");
    System.out.println(username + " " + password);
    }
  3. 方式三:封装成javabean
    1)属性名与请求参数名保持一致,并且类型要一样;
    注:会自动做类型转换,但是有可能会转换失败。
    2)添加对应的get/set方法。

public class UserParam{
    private String username;
    private String pwd;
    public String getUsername(){
        return username;
    }
    public void setUsername(String username){
        this.username = username;
    }
}

@RequestMapping("/login3.do")
/**
 * DispatcherServlet会负责创建UserParam对象(会将请求参数值赋给该对象对应的属性)。
 */
public String login3(UserParam up){
    System.out.println("login3()");
    System.out.println(up.getUsername() + " " + up.getPwd());   
}

二.向页面传值

  1. 方式一:将数据绑订到request对象上,然后转发到JSP。

    @RequestMapping("/login4.do")
    public String login4(UserParam up, HttpServletRequest request){
    System.out.println("login4()");
    String username = up.getUsername();
    /**
     * DispatcherServlet会默认使用转发。
     */
     return "index";
    }
  2. 方式二:返回ModelAndView对象。

    /**
    * DispatcherServlet会将数据从ModelAndView中取出来,绑定到request。
    */
    public ModelAndView login5(UserParam up){
    System.out.println("login5()");
    String username = up.getUsername();
    // 先将数据添加到Map对象里面
    Map<String, Object> data = new HashMap<String, Object>();
    // 相当于request.setAttribute("username", username)
    data.put("username", username);
    // 构造ModelAndView对象
    ModelAndView mav = new ModelAndView("index", data);
    return mav;
    }
  3. 方式三:使用ModelMap对象。

    /**
    * DispatcherServlet会将数据从ModelMap对象中取出来,然后绑定到request。
    */
    public String login6(UserParam up, ModelMap mm){
    System.out.println("login6()");
    String username = up.getUsername();
    // 相当于request.setAttribute("username", username)
    mm.addAttribute("username", username);
    return "index";
    }
  4. 方式四:将数据绑订到session对象上。

    /**
    * DispatcherServlet会将session对象传进来
    */
    public String login7(UserParam up, HttpSession session){
    System.out.println("login7()");
    String username = up.getUsername();
    session.setAttribute("username", username);
    return "index";
    }

猜你喜欢

转载自blog.csdn.net/clearfairy/article/details/79248903