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

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

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

一、基本数据类型

二、自定义类型

三、地址栏传递

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

具体实现步骤如下:

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

1.1)创建login.jsp页面

1
2
3
4
5
6
7
  <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方法

1
2
3
4
5
6
7
8
    @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类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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方法

1
2
3
4
5
6
    @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

1
2
3
4
5
    <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方法

1
2
3
4
5
6
7
    @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页面传递啊!!!

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

《Java从入门到放弃》入门篇:springMVC数据传递的更多相关文章

  1. Java性能测试从入门到放弃-概述篇

    Java性能测试从入门到放弃-概念篇 辅助工具 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.JMeter 可以用于对服务器.网络 ...

  2. Flink从入门到放弃(入门篇1)-Flink是什么

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  3. Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  4. Flink从入门到放弃(入门篇3)-DataSetAPI

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  5. Flink从入门到放弃(入门篇4) DataStreamAPI

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  6. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

  7. 转-Vue.js2.0从入门到放弃---入门实例(一)

    http://blog.csdn.net/u013182762/article/details/53021374 标签: Vue.jsVue.js 2.0Vue.js入门实例Vue.js 2.0教程 ...

  8. NodeJs 入门到放弃 — 入门基本介绍(一)

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14450905.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...

  9. mysql从入门到放弃-入门知识介绍

    数据库在互联网网站的重要性 简单地说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构来组织和存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据.由于数据库不易扩展,所以,在一个互 ...

随机推荐

  1. Linux下BMP文件不能正常读取问题的解决办法

    今天将之前在win下编好的读取BMP图像功能移植到UNIX下. 碰到的第一个问题是,Linux下的BMP文件头的结构体需要自己重新定义一遍. 第二个问题是,需要搞清楚Linux是32位的还是64位的. ...

  2. accp8.0转换教材第3章MySQL高级查询(一)理解与练习

    一.单词部分 ①constraint约束②foreign外键③references参考 ④subquery子查询⑤inner内部的⑥join连接 二.预习部分 1.修改表SQL语句的关键字是什么 RE ...

  3. 初试spring-session

    一.简介 spring-session提供了用户会话信息管理的API和实现. 它将取代容器中的HttpSession.在没有容器会话集群方案的情况下,使得支持会话集群微不足道. 它支持在一个浏览器实例 ...

  4. jqueryEasyUI列表

    背景 因为学习大数据开发这段时间,同时也学习java的一些知识.利用了近五个月的时间来投入学习,当然我选择了一个机构,因为已经做了四年多的开发,所以即使不是做的java但是java还是了解的,这段时间 ...

  5. vijos1062题解

    题目: 交谊舞是2个人跳的,而且一男一女 -____-||||. 由于交谊舞之前的节目安排,所有的表演者都站成了一排.这一排人的顺序满足2点: ①对于一对舞伴男生站在女生的左边. ②任何一对舞伴之间, ...

  6. Unity3D 物体移动到指定点

    transform.position=Vector3.MoveTowards(transform.position , Target.position, speed * Time.deltaTime) ...

  7. 学习java应该了解一些html超文本标记语言(前端)

    在自己学习的过程中遇到一些内容,怕忘记所以借助博客加深印象也方便查找! html超文本标记语言中,分行级元素和块级元素. 行级元素的含义:行级元素不独占一行,相邻的行级元素在一行排列:行级元素可以控制 ...

  8. Django学习(七)---添加新文章页面

    在template中添加add_article.html页面 (form  input)请求方法使用post 这个页面涉及到了两个响应函数 1)显示页面的响应函数  2)表单提交的响应函数 add_a ...

  9. 字典的定义和操作 (Python)

    字典是由key and value 构成,无序结构(不想列表那样有固体位置): note:key 是唯一的,没有重复: 字典可以多级嵌套: 定义: dict1 = { # 由等式构成 dict = { ...

  10. Delphi Screen.DataModuleCount 总是返回 0!Delphi 的 Bug? DataModuleCount = 0

         今天遇到一个很隐蔽的 Delphi 问题,不知做了什么,有一个功能总是不能使用,后来跟踪以下发现是因为 Screen.DataModuleCount 总是返回 0,而程序中一个函数正好要用到 ...