SpringMVC

来源:互联网 发布:mac 邮件 qq邮箱 编辑:程序博客网 时间:2024/04/30 02:49

Spring MVC的WEB请求有下面三种方式:
1. HttpServletRequest获取
- Spring参数注入HttepServletRequest。
注:需要自己处理数据格式

@RequestMapping("/login.form")public String CheckLogin(HttpServletRequest req){    String name=req.getParameter("name");    String pwd=req.getParameter("password");    User user=userService.login(name,pwd);    return "success";}
  1. 使用RequestParam注解

Sping会自动将表单参数注入到方法参数
使用@RequestParam注解,映射不一致的名称
这样参数类型可以自动转换,缺点就是可能出现转换异常。

@RequestMapping("/login.form")public String checkLogin(String name,@RequestParam("pwd")String password,HttpServletRequest req){    User user=userService.login(name,password);    .......    return "success";}
  1. 使用自动封装成Bean的对象
    定义User类实体,属性名与表单组件的name相同
<form action="login.form">    username:<input type="text" name="name"></br>    password:<input type="text" name="pwd"></br></form>
public class User{    private String name;    private String pwd;    //这块是getter和setter方法}

使用Controller组件开始了

@RequestMapping("/login.form")public String login(User user){    system.out.print(user.getName());    system.out.print(user.getPwd());    User user=userService(user.getName(),user.getPwd());    //..........    return "success";}

用上面方法就是将组件处理,现在需要向JSP页面传值

  1. 使用ModelAndView对象
@RequestMapping("/login.form")publilc ModelAndView checkLogin(String name,String pwd){    User user=userService.login(name,pwd);    Map<String,Object> data=new HashMap<String,Object>();    data.put("user",user);    return new ModelAndView("success",data);}
  1. 使用ModelMap参数
@RequestMapping("/login.form")public String checkLogin(String name,String pwd,ModelMap model){    User user=userService.login(name,pwd);    model.addAttribute("user",user);    return "success";}
  1. 使用@ModelAttribute
    在Controller的参数部分或Bean的属性方法上使用
@RequestMapping("/login.form")public String checkLogin(@ModelAttribute("user")User user){    ///.....    return "success";}/**@ModelAttribute数据会利用HttpServletRequest的Atribute传递到JSP页面*/@ModelAttribute("name")public String getName(){    return name;}

session存储
利用HttpServletRequest的getSession()方法

RequestMapping("/login.form")public String checkLogin(String name,String pwd,ModelMap model,HttpServletRequest req){    User user=userService.login(name,pwd);    req.getSession().setAttribute("loginUser",user);    model.setAttribute("user",user);    return "success";}

SpringMVC默认采用转发方式定位视图,如果需要重定向方式可以使用:
- RedirectView
- 使用redirect:前缀
如果Controller控制方法返回的是ModelAndView对象,可以使用RedirectView方法重定向,

public ModelAndView checkLogin(){    //................    RedirectView redirect=new RedirectView("login.form");    return new ModelAndView(view);}

当Controller控制方法返回的是String字符串时,可以使用redirect:前缀

public String checkLogin(){    //.....................    return "redirect:login.form";}
0 0
原创粉丝点击