spring - springmvc - 传递参数
时间:2019-10-19
本文章向大家介绍spring - springmvc - 传递参数,主要包括spring - springmvc - 传递参数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
https://www.cnblogs.com/clamp7724/p/11693572.html
在这个例子的基础上修改
1.前台向后台传参
1.1:超链接传递参数
在index.jsp页面添加超链接
<a href="hello/helloparams?name='yzha'&password='123456'">Hello params</a>
<!--据说有的浏览器hello/helloparams不行,谷歌是可以的,别的不知道...-->
修改controller --- HelloWorldController
package hello_word; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.lang.annotation.Annotation; @Controller //注解表示这是一个controller //@RequestMapping(path = "/hello") 这里也可以加RequestMapping注解,如果加在类上则表示一级路径,那样跳转路径就变成了hello/helloworld,
@RequestMapping(path = "/hello") //RequestMapping中有 // path:路径,在注释在类上方表示1级路径,在方法上方表示二级路径 // value:(和path作用一样), // method:method的参数是一个enum类对象(枚举),使用时用类名RequestMethod + .属性,可以规定接受请求的种类: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; // params: 用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。 // 例如: params = {"accountName"},表示请求参数必须有accountName params = {"moeny!100"},表示请求参数中money不能是100。 //也就是请求地址必须传参: /helloworld?accountName = 'aaa' //headers:一个字符串数组,表示包含的请求头,比如GET,HOST,connection,Accept这一类的,前台给后台发的请求 public class HelloWorldController { @RequestMapping(path = "/helloworld") //说明地址以/helloworld结尾的请求,由这个方法处理 public String helloWorldPath(){ System.out.println("hello world"); return "success"; //表示跳转的页面为 success.jsp } @RequestMapping(path = "/helloparams", params = {"name","password"}) //表示有两个参数 public String helloParams(String name, String password){ System.out.println("name = " + name); System.out.println("password = " + password); return "success"; //表示跳转的页面为 success.jsp } }
其实主要就是添加了新的controller方法来处理index.jsp新加的的请求
@RequestMapping(path = "/helloparams", params = {"name","password"}) //表示有两个参数 public String helloParams(String name, String password){//springmvc 中使用方法参数的方式接收参数,可以接受基本类型,string,甚至是对象(javaBean) System.out.println("name = " + name); System.out.println("password = " + password); return "success"; //表示跳转的页面为 success.jsp }
点下面的链接,后台输出了前台传递过来的信息(为了清楚可以在启动服务后先clean一下后台的output)
2. form表单传递对象参数 (工作中一般是用这个)
为了正式点先修改一下左边的列表,在hello_world文件夹下建2个package,一个叫controller存放各种controller,一个叫domain,用来存放存放数据的class类
把之前的HelloWorldController放到Controller package中,在domain package里创建新的class,起名Account,用来接收前台传递过来的对象(两个属性name,password要和前台表单中name一致,添加对应的get,set方法)
这里我重写了toString方法,用来显示结果。 toString是java中object类自带的方法,System.out.print(object对象)的时候,默认调用的就是这个方法。
Account类的代码:
package hello_word.domain; public class Account { String name; String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "Account{" + "name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }
修改controller --- HelloWorldController
添加一个新的方法处理这个form请求。
@RequestMapping(path = "/helloobject") public String helloParams(Account account){//表示有一个Account对象作为参数,因为两个类不在同一个package里需要import这个class System.out.println(account);//因为重写了Account的toString方法,这里可以直接用print显示内容 return "success"; //表示跳转的页面为 success.jsp }
原文地址:https://www.cnblogs.com/clamp7724/p/11703406.html
- 隐秘通讯与跳板?C&C服务器究竟是怎么一回事
- 灵活布置、可二次开发的乌云公开漏洞及知识库搜索
- 干货 | 2014年我国大数据发展分析报告
- 这个恶意软件“奇葩”的反虚拟机技巧
- Android漏洞CVE-2015-3825分析及exploit实战:从Crash到劫持PC
- VaultPasswordView:可用于查看windows Vault密码的工具
- 逆向工厂(二):静态分析技术
- 打开文件夹就运行?COM劫持利用新姿势
- Java集合总览
- 常见面试题之ListView的复用及如何优化
- 自定义圆形控件RoundImageView并认识一下attr.xml
- 自定义带图片和文字的ImageTextButton
- 超值干货:个人开发者如何使用免费又简单的开发后台
- 【周末分享】解决中文排版错位的JustifiedTextview控件
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 数组:这个循环可以转懵很多人!
- 企业远程办公视频会议系统EasyRTC-SFU下侧边栏边框超限问题如何解决?
- 编写高质量可维护的代码:数据建模
- 新版企业远程办公视频通话系统EasyRTC-SFU,如何解决用户登录信息更新不及时的问题?
- 服务应用突然宕机了?别怕,Dubbo 帮你自动搞定服务隔离!
- 33.Python字符串方法find以及与序列解包的技巧结合
- 代码审计从0到1 —— Centreon One-click To RCE
- 一文带你深扒ClassLoader内核,揭开它的神秘面纱!
- 小知识:OGG的TRANLOGOPTIONS MINEFROMACTIVEDG参数
- oracle转postgreSQL修改点
- 重学数据结构(三、队列)
- Jmeter系列(68)- BeanShell 内置变量 prev
- 聊聊java中的哪些Map:(六)ConcurrentHashMap源码分析
- 任意文件包含漏洞的绕过方式
- XXE实体注入漏洞详解