《Java从入门到放弃》框架入门篇:springMVC数据传递

springMVC中的数据传递方式与JSP和Struts2相比,更加的简单。具体有什么样的区别呢?我们通过下面这张图来对比就知道了。

随手画的,有些错别字,不用太在意.....

接下来,进入正题,springMVC中的常用数据传递方式有以下三种:

一、基本数据类型

二、自定义类型

三、地址栏传递

第二种最常用,分页时使用第三种。

具体实现步骤如下:

一、基本数据类型,使用@RequestParam接收数据,注意表单元素的name属性和@RequestParam的值要一一对应

1.1)创建login.jsp页面

  <body>
    <form action="login1.form" method="post">
        账号:<input name="loginid" type="text" /><br />
        密码:<input name="loginpwd" type="password" /><br />
        <input type="submit" value="登录" />
    </form>
  </body>

    1.2)在MyController中新建login1方法

    @RequestMapping("/login1")
    public String lgoin1(@RequestParam("loginid") String username,
            @RequestParam("loginpwd") String userpwd){
        System.out.println("账号:"+username);
        System.out.println("密码:"+userpwd);
        
        return "index.jsp";
    }

    1.3)访问login.jsp并提交数据,在地址栏输入http://localhost:8888/spDemo/login.jsp,并输入账号和密码。

从上面的代码应该可以看出私人定制是多么的好用了吧,哇哈哈哈哈·····

二、自定义类型,使用@ModelAttribute来接收数据

    2.0)新建User类

public class User {
    
    private String loginid;
    private String loginpwd;
    
    public String getLoginid() {
        return loginid;
    }
    public void setLoginid(String loginid) {
        this.loginid = loginid;
    }
    public String getLoginpwd() {
        return loginpwd;
    }
    public void setLoginpwd(String loginpwd) {
        this.loginpwd = loginpwd;
    }
    
}

    2.1)在MyController中新建login2方法

    @RequestMapping("/login2")
    public String login2(@ModelAttribute("user") User use){
        System.out.println("账号:"+use.getLoginid());
        System.out.println("密码:"+use.getLoginpwd());
        return "index.jsp";
    }

    2.2)修改login.jsp中form的action属性为login2

    <form action="login2.form" method="post">
        账号:<input name="loginid" type="text" /><br />
        密码:<input name="loginpwd" type="password" /><br />
        <input type="submit" value="登录" />
    </form>

    2.3)访问login.jsp并提交数据

以属性的方式来传递数据是不是更加的清晰简单明了!!!

三、地址栏传递,使用@PathVariable来接收数据。

3.1)在MyController中新建login2方法

    @RequestMapping("/login_{idx}_{no}")
    public String login3(@PathVariable("idx") int index, @PathVariable("no") int number){
        System.out.println("值1:"+index);
        System.out.println("值2:"+number);
        
        return "index.jsp";
    }

    2.2)在地址栏输入http://localhost:8888/spDemo/login_13_250.form进行访问。

OK,到这儿springMVC数据传递中的接收数据就告一阶段,细心的客官应该已经发现,他喵的只能接收数据,不能继续向index.jsp页面传递啊!!!

莫急莫急,欲知如何继续向下一页面传递数据,我们下一篇再来分解!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码洞

天下无难试之ArrayList面试刁难大全

ArrayList可能是Java数据结构中最简单的一种了,即使一个非Java程序员可能也知道这个数据结构,因为所有的语言中都有这样的类似的数据结构。可是在经历过...

692
来自专栏大内老A

如何解决EnterLib异常处理框架最大的局限——基于异常"类型"的异常处理策略

个人觉得EnterLib的EHAB(Exception Handling Application Block)是一个不错的异常处理框架,借助于EHAB,我们可以...

1955
来自专栏禁心尽力

Web层框架对网站中所有异常的统一处理

  一个网站的异常信息作为专业的人士,是不会轻易暴露给用户的,因为那样狠不安全,显得你漏是一回事,只要还是考虑到网站的数据安全问题,下面给大家分享一下一些常见的...

2058
来自专栏逆向技术

异常处理第二讲,结构化异常(微软未公开)

            异常处理第二讲,结构化异常(微软未公开) 讲解之前,请熟悉WinDbg的使用,工具使用的博客链接 一丶认识段寄存器FS的内容,以及作用 ...

1867
来自专栏CSDN技术头条

JavaScript内存管理机制以及四种常见的内存泄漏解析

几个星期前,我们开始编写深入研究JavaScript工作原理的系列文章。通过阅读这些文章,你可以了解到JavaScript的构建块及其交互原理,从而能够编写出更...

17710
来自专栏web编程技术分享

web项目常见错误和解决方案

33212
来自专栏闰土大叔

闰土说JS进阶之作用域链

前言 在前端应聘中,相信会有不少面试官都会问你,说说你理解的js作用域,或者作用域链。显然,这是一道经典的js面试题,对于老司机而言可谓是小菜一碟,而对于前端...

3209
来自专栏Play & Scala 技术分享

原 荐 关于 Scala 隐式转换必读的一篇

2332
来自专栏高性能服务器开发

经典面试题(三)之栈详解

我们常常说堆栈堆栈,但是堆和栈其实是完全不同的两个概念。栈其实完全是为了函数调用而设计的,那么函数调用如何通过栈实现的呢?不用函数调用方式,栈在行为上有什么区别...

3143
来自专栏开源优测

[接口测试_B] 05 Pytest参数化处理

pytest的参数化方式 pytest.fixture()方式进行参数化,fixture装饰的函数可以作为参数传入其他函数 conftest.py 文件中存放参...

2805

扫码关注云+社区