【springmvc】传值的几种方式&&postman接口测试
最近在用postman测试postman接口,对于springmvc传值这一块,测试了几种常用方式,总结一下。对于postman这个工具的使用也增加了了解。postman测试很棒,有了工具,测试接口,事倍功半。
一、单个参数传递
1.@RequestBody注解
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"> /**
- * 测试单个参数@RequestBody
- */
- @CrossOrigin
- @RequestMapping(value = {"/insertTestParamsRequest"}, method = RequestMethod.GET)
- @ResponseBody
- public void insertTestParamsRequest(@RequestBody String name, @RequestBody String age) {
- System.out.println("name=====" + name);
- System.out.println("age=====" + age);
- }
- </span>
/**
* 测试单个参数@RequestBody
*/
@CrossOrigin
@RequestMapping(value = {"/insertTestParamsRequest"}, method = RequestMethod.GET)
@ResponseBody
public void insertTestParamsRequest(@RequestBody String name, @RequestBody String age) {
System.out.println("name=====" + name);
System.out.println("age=====" + age);
}
测试请求路径
2.@RequestParam
常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( ;
该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"> /**
- * 测试单个参数@RequestParam
- */
- @CrossOrigin
- @RequestMapping(value = {"/insertTestParams"}, method = RequestMethod.GET)
- @ResponseBody
- public void insertTestParams(HttpServletRequest request, @RequestParam String name, @RequestParam String age) {
- System.out.println("name=====" + name);
- System.out.println("age=====" + age);
- }</span>
/**
* 测试单个参数@RequestParam
*/
@CrossOrigin
@RequestMapping(value = {"/insertTestParams"}, method = RequestMethod.GET)
@ResponseBody
public void insertTestParams(HttpServletRequest request, @RequestParam String name, @RequestParam String age) {
System.out.println("name=====" + name);
System.out.println("age=====" + age);
}
请求路径:
3.@PathVariable注解
路径为resultful风格,将参数当做请求路径。
当使用@RequestMapping URI template 样式映射时, 即 Url/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"> /**
- * 测试单个参数@PathVariable
- */
- @CrossOrigin
- @RequestMapping(value = {"/insertTest/{name}/{age}"}, method = RequestMethod.GET)
- @ResponseBody
- public void insertTestPathVeriable(HttpServletRequest request, @PathVariable("name") String name, @PathVariable String age) {
- System.out.println("name=====" + name);
- System.out.println("age=====" + age);
- }</span>
/**
* 测试单个参数@PathVariable
*/
@CrossOrigin
@RequestMapping(value = {"/insertTest/{name}/{age}"}, method = RequestMethod.GET)
@ResponseBody
public void insertTestPathVeriable(HttpServletRequest request, @PathVariable("name") String name, @PathVariable String age) {
System.out.println("name=====" + name);
System.out.println("age=====" + age);
}
上面代码把URI template 中变量 name的值和age的值,绑定到方法的参数上。若方法参数名称和需要绑定的uri template中变量名称不一致,需要在@PathVariable("name")指定uri template中的名称。
二、传递pojo对象
1.@RequestBody注解
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"> /*测试添加实体*/
- @CrossOrigin
- @RequestMapping(value = {"/insertEntityTest"}, method = RequestMethod.POST)
- @ResponseBody
- public void insertEntityTest(@RequestBody CurriculumScheduleEntity curriculumScheduleEntity) {
- System.out.println("name=====" + curriculumScheduleEntity.getClassId());
- System.out.println("age=====" + curriculumScheduleEntity.getTeachclassId());
- }</span>
/*测试添加实体*/
@CrossOrigin
@RequestMapping(value = {"/insertEntityTest"}, method = RequestMethod.POST)
@ResponseBody
public void insertEntityTest(@RequestBody CurriculumScheduleEntity curriculumScheduleEntity) {
System.out.println("name=====" + curriculumScheduleEntity.getClassId());
System.out.println("age=====" + curriculumScheduleEntity.getTeachclassId());
}
postman通过json格式测试
2.直接写实体
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"> /*测试添加实体*/
- @CrossOrigin
- @RequestMapping(value = {"/insertTest"}, method = RequestMethod.POST)
- @ResponseBody
- public void insertTest(CurriculumScheduleEntity curriculumScheduleEntity) {
- System.out.println("name=====" + curriculumScheduleEntity.getClassId());
- System.out.println("age=====" + curriculumScheduleEntity.getWeekId());
- }</span>
/*测试添加实体*/
@CrossOrigin
@RequestMapping(value = {"/insertTest"}, method = RequestMethod.POST)
@ResponseBody
public void insertTest(CurriculumScheduleEntity curriculumScheduleEntity) {
System.out.println("name=====" + curriculumScheduleEntity.getClassId());
System.out.println("age=====" + curriculumScheduleEntity.getWeekId());
}
form表单测试
- <span style="font-family:'KaiTi_GB2312';font-size:18px;"><div>
- <form action="/curriculumSchedule/insertTest" method="post">
- classId :<input name="classId"><br>
- teachClassId:<input name="weekId"><br>
- <input type="submit" value="提交">
- </form>
- </div></span>
<div>
<form action="/curriculumSchedule/insertTest" method="post">
classId :<input name="classId"><br>
teachClassId:<input name="weekId"><br>
<input type="submit" value="提交">
</form>
</div>
postman测试格式
三、postman测试List类型参数
以List<string>为例,测试批量删除方法,参数为List<String>。写这个其实没有什么技术,但是中午在测试List接口的时候,用postman测试,格式一致写错,不知道用postman该怎么测试了。所以花费了一点时间,记录下来,思考这个工具的执行过程。
Controller方法
3.参考连接
http://www.cnblogs.com/sandyliu1999/p/4802706.html
2018_05_24更新(6.0版本)
1、如果要传递多个参数其中一个Long类型的数组,另外一个是Long类型的数据,还有一个实体,那么后者可以直接传,前者的话用Body中的formData来进行传递就好了,具体如下图:

2、在上面提到传递实体接收的方式,我试了不行不过可以直接将实体属性按照表单那样去写就可以获取到了,如下图所示:

小技巧:可以直接复制JSON中的选项,然后将光标点击在“x-www-form-ulencoded”第一项最后Ctrl+V就可以直接粘贴了非常方便。
【springmvc】传值的几种方式&&postman接口测试的更多相关文章
- ASP.NET 页面之间传值的几种方式
开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...
- 第三节:Action向View传值的四种方式(ViewData、ViewBag、TempData、Model)
简 介 在前面的章节中,我们已经很清楚,MVC工作模型的流程,Controller中的Action接收到客户端的请求,处理后要将数据返回给View,那么Action中是如何将数据返回给View的,二 ...
- 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- MVC5控制器传值的三种方式(ViewData,ViewBag,TempData),刚刚学习MVC5的新手,希望各位大神多多指教
mvc传值的三种方式:1.ViewData 在使用过程中需要类型转换 例子: ViewData["MyTitle"]="ViewData传值"; 引用: @Vi ...
- EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))
一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Ord ...
- MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是 1 ViewDate 2.ViewBag 3.TempDate 4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...
- ASP.NET页面间传值的几种方式
ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...
- vue传值的几种方式
props:适用于 父组件 ==> 子组件 通信 由父组件传值子组件在props中接收即可: (由父组件给子组件传递 函数类型 的props可实现 子组件 ==> 父组件 传递数据,较为繁 ...
- 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式
一.概述. 在很多企业的开法中常常用到SpringMVC+Spring+Hibernate(mybatis)这样的架构,SpringMVC相当于Struts是页面到Contorller直接的交互的框架 ...
随机推荐
- Android 内存溢出处理方案
转自 : http://www.cnblogs.com/hello-ruby/archive/2013/04/19/3031098.html 首先我们来看看android内存溢出的原因,有可能是: 由 ...
- 转 【TTS】AIX平台数据库迁移到Linux--基于RMAN(真实环境)
[TTS]AIX平台数据库迁移到Linux--基于RMAN(真实环境) http://www.cnblogs.com/lhrbest/articles/5186933.html 各位技术爱好者,看完本 ...
- 174 Dungeon Game 地下城游戏
一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格布局.我们英勇的骑士(K)最初被安置在左上角的房间里,并且必须通过地下城对抗来拯救公主.骑士具有以正整数 ...
- sed练习第一节
ed语法和基本命令 employee.txt文件内容如下: 101,John Doe,CEO 102,Jason Smith,IT Manager 103,Raj Reddy,Sysadmin 104 ...
- 解决ef第一次启动较慢
protected void Application_Start() { //禁用第一次ef查询对表__MigrationHistory的问题使用了ef的Code first会在第一次ef查询的时候会 ...
- C#中的事件机制
这几天把事件学了一下,总算明白了一些.不多说了,直接代码. class Program { static void Main(string[] args) { CatAndMouse h = new ...
- Android动态权限申请
Android系统中,目前Dangerous级别的权限都需要动态申请.步骤如下: 1.AndroidManfiest.xml中申明需要的动态权限 <?xml version="1.0& ...
- swift派发机制的核心是确定一个函数能否进入动态派发列表
swift派发机制的核心是确定一个函数能否进入动态派发列表
- CAD参数绘制对齐标注(com接口)
主要用到函数说明: _DMxDrawX::DrawDimAligned 绘制一个对齐标注.详细说明如下: 参数 说明 DOUBLE dExtLine1PointX 第一条界线开始点X值 DOUBLE ...
- Android 控件布局常用的属性
<!--单个控件经常用到android:id —— 为控件指定相应的IDandroid:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串a ...