spring mvc 存取值


(转)

1,使用HttpServletRequest获取

Java代码
  1. @RequestMapping("/login.do")
  2. publicStringlogin(HttpServletRequestrequest){
  3. Stringname=request.getParameter("name")
  4. Stringpass=request.getParameter("pass")
  5. }

2,Spring会自动将表单参数注入到方法参数,和表单的name属性保持一致。和Struts2一样

Java代码
  1. @RequestMapping("/login.do")
  2. publicStringlogin(HttpServletRequestrequest,
  3. Stringname,
  4. @RequestParam("pass")Stringpassword)//表单属性是pass,用变量password接收
  5. {
  6. syso(name);
  7. syso(password)
  8. }

3,自动注入Bean属性

Java代码
  1. <formaction="login.do">
  2. 用户名:<inputname="name"/>
  3. 密码:<inputname="pass"/>
  4. <inputtype="submit"value="登陆">
  5. </form>
  6. //封装的User类
  7. publicclassUser{
  8. privateStringname;
  9. privateStringpass;
  10. }

Java代码
  1. @RequestMapping("/login.do")
  2. publicStringlogin(Useruser)
  3. {
  4. syso(user.getName());
  5. syso(user.getPass());
  6. }

向页面传值:

当Controller组件处理后,向jsp页面传值,

1,使用HttpServletRequest 和 Session 然后setAttribute(),就和Servlet中一样

2,使用ModelAndView对象

3,使用ModelMap对象

4,使用@ModelAttribute注解

Model数据会利用HttpServletRequest的Attribute传值到success.jsp中

Java代码
  1. @RequestMapping("/login.do")
  2. publicModelAndViewlogin(Stringname,Stringpass){
  3. Useruser=userService.login(name,pwd);
  4. Map<String,Object>data=newHashMap<String,Object>();
  5. data.put("user",user);
  6. returnnewModelAndView("success",data);
  7. }

使用ModelMap参数对象示例:

ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中

Java代码
  1. @RequestMapping("/login.do")
  2. public Stringlogin(Stringname,Stringpass,ModelMapmodel){
  3. Useruser=userService.login(name,pwd);
  4. model.addAttribute("user",user);
  5. model.put("name",name);
  6. return"success";
  7. }

使用@ModelAttribute示例

在Controller方法的参数部分或Bean属性方法上使用

@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中

Java代码
  1. @RequestMapping("/login.do")
  2. publicStringlogin(@ModelAttribute("user")Useruser){
  3. //TODO
  4. return"success";
  5. }
  6. @ModelAttribute("name")
  7. publicStringgetName(){
  8. returnname;
  9. }

Session存储:

可以利用HttpServletReequest的getSession()方法

Java代码
  1. @RequestMapping("/login.do")
  2. publicStringlogin(Stringname,Stringpwd
  3. ModelMapmodel,HttpServletRequestrequest){
  4. Useruser=serService.login(name,pwd);
  5. HttpSessionsession=request.getSession();
  6. session.setAttribute("user",user);
  7. model.addAttribute("user",user);
  8. return"success";
  9. }

Spring MVC 默认采用的是转发来定位视图,如果要使用重定向,可以如下操作

1,使用RedirectView

2,使用redirect:前缀

Java代码
  1. publicModelAndViewlogin(){
  2. RedirectViewview=newRedirectView("regirst.do");
  3. returnnewModelAndView(view);
  4. }

或者用如下方法,工作中常用的方法:

长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn