第四章 后台传值并跳转jsp-跟赵大笨笨学SpringMVC

一.跳转画面

还记得我们第二章中在web.xml中配置的前段控制器吗?

@RequestMapping("/init")
    public String init(){
        return "login";
    }

当你打上断点,你就会发现他会走DispatcherServlet.doDispatch方法
这里写图片描述
由于我们还没有到研究源码程度,我只告诉你,定义了ModelAndView对象它里面即对model做了处理也对view做了处理。简单了解之后来看我们另一种跳画面的写法:


ModelAndView

@RequestMapping("/init")
    public ModelAndView init(){
        ModelAndView mv = new ModelAndView("login");
        return mv;
    }

我们这么写,和doDispatch异曲同工,在方法体内我们可以通过ModelAndView对象来是像请求域中添加模型数据的。
既然说了可以添加数据模型,我们试试

@RequestMapping("/init")
    public ModelAndView init(){
        ModelAndView mv = new ModelAndView("login");
        mv.addObject("date", new Date());
        return mv;
    }
<form method="post" action="/spring/login">
${date}<br/>
用户名:<input type="text" name="userName"/><br/>
密码:<input type="text" name="password"><br/>
<button >Login</button>
</form>

看一下效果:
这里写图片描述
成功!!! 难道说要给jsp传参,我们一开始写的方法返回类型是String不可以?一定要返回ModelAndView才可以吗?当然不是。
使用Model参数对象
我们来改改login处理

    @RequestMapping("/login")
    public String login(UserLogin user, Model model){
        model.addAttribute("name", user.getUserName());
        return "index";
    }

将初始化画面上输入的用户名在index.jsp 画面现实出来。

<body>
${name}登陆成功
</body>

这里写图片描述
点login之后跳转到index.jsp
这里写图片描述


使用ModelMap参数对象
再改一下login的java代码:

    @RequestMapping("/login")
    public String login(UserLogin user, ModelMap model){
        // 第一种
        model.addAttribute("name", user.getUserName());
        // 第二种
        model.put("pwd", user.getPassword());
        return "index";
    }

jsp改为:

<body>
${name}登陆成功,您的密码是:${pwd}
</body>

再看一下效果:这里写图片描述

有没有注意,我的名字和密码没有输中文啊,如果你用了中文是不是出现了乱码?下一章我们就来解决乱码问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值