springmvc接收参数
springmvc执行流程
搭建ssm框架:http://www.cnblogs.com/liyafei/p/7955413.html
1:从表单中接收 普通请求参数
结构目录
role.html
1.1 role.html表单
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 上级目录../ 本级目录./ 根目录/ 也就是http://localhost:8080/-->
<!--role.html访问路径为 http://localhost:8080/html/role.html,html/**映射为WEB-INF/html/ 。在web.xml有配置 -->
<!--params/commonParams.do的访问目录为 http://localhost:8080/params/commonParams.do?roleName=li¬e=yafei -->
<!-- 所以可以使用../或者/ --> <!-- ./代表 html/ -->
<form id="form" action="/params/commonParams.do">
<table>
<tr>
<td>角色名称</td>
<td><input id="roleName" name="roleName" value="" /></td> <!--name的值将会作为参数名传递-->
</tr>
<tr>
<td>备注</td>
<td><input id="note" name="note" /></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
1.2 springmvc使用表现层controller接收
ParamsController.java
package com.li.controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/params")
public class ParamsController { @RequestMapping("/commonParams")
public ModelAndView commonParams(String roleName,String note){ //参数名一致就会获得http传输过来的参数
System.out.println("roleName>"+roleName);
System.out.println("note=>"+note);
ModelAndView mv=new ModelAndView();
mv.setViewName("hello");
return mv; //会被视图解析器解析
}
}
1.3测试成功。
2:使用pojo接收普通参数,pojo的属性名应该与传过来的参数名相同
RoleParam.java
package com.li.pojo; public class RoleParam { String note;
String roleName;
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
} }
controller中加入方法,修改form表单的action为../params/commonParamPojo.do
@RequestMapping("/commonParamPojo")
public ModelAndView commonParamPojo(RoleParam roleParam){
System.out.println("roleName=>"+roleParam.getRoleName());
System.out.println("note=>"+roleParam.getNote());
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return mv;
}
3:传输过来的参数名和方法名中的名字不一致时可以使用requestParam,修改form表单的action为../params/requestParam.do
/**
* 当传输的参数名和映射方法中的参数名不一致时,可以使用@RequestParam获取传输过来的参数,后面 的参数名字任意定义
*/
@RequestMapping("/requestParam")
public ModelAndView requestParam(@RequestParam("roleName") String name,String note){
System.out.println("roleName>"+name);
System.out.println("note=>"+note);
ModelAndView mv=new ModelAndView();
mv.setViewName("hello");
return mv; //会被视图解析器解析
}
4:使用URL传递参数
/**
* 使用url传递参数
* @pathVariable
*/
@RequestMapping("/pathVariable/{id}")
public ModelAndView pathVariable(@PathVariable("id")Long id){
System.out.println(id);
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
// mv.addObject("user");
// mv.addObject("user", "user");
// Map<String, String> map = new HashMap<String, String>();
// map.put("user1", "user1");
// map.put("user2", "user2");
// mv.addAllObjects(map);
return mv;
}
访问路径:http://localhost:8080/params/pathVariable/1
5:传递json参数
5.1 创建pojo
package com.li.pojo; public class PageParams { private int start;
private int limit;
setter and getter
} package com.li.pojo; public class RoleParams { private String roleName;
private String note;
private PageParams pageParams;
setter and getter
}
5.2 javascript代码
$(document).ready(function(){
//json参数和类RoleParams一一对应
var data={
//角色查询参数
roleName:'role',
note:'note',
//分页参数
pageParams:{
start:1,
limit:20
}
} //jquery的post请求
$.post({
url:"./params/findRoles.do",
//此处需要告知传递参数类型的JSON,不能缺少
contentType:"application/json",
data:JSON.stringify(data),
//成功后 的方法
success:function(result){
}
});
});
5.3 添加findRoles方法,接收json数据需要使用@RequestBody注解
@RequestMapping("/findRoles")
public ModelAndView findRoles(@RequestBody RoleParams roleParams){
System.out.println(roleParams.getRoleName());
System.out.println(roleParams.getNote());
System.out.println(roleParams.getPageParams());
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return mv;
}
5.4:其它方式接收参数,javascript代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title> <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){ //这里没有触发方法,打开该页面,就会直接运行,
//json参数和类RoleParams一一对应
var data={
//角色查询参数
roleName:'role',
note:'note',
//分页参数
pageParams:{
start:1,
limit:20
}
} //jquery的post请求
$.post({
url:"/params/findRoles.do",
//此处需要告知传递参数类型的JSON,不能缺少
contentType:"application/json",
data:JSON.stringify(data),
//成功后 的方法
success:function(result){
}
});
}); //15.1.5,接收列表数据和表单序列化
//传递数组给控制器
$(document).ready(function(){
//删除角色数组
var idList=[1,2,3];
//jQuery 的post请求
$.post({
url:"/params/deleteRoles.do",
//将json转化为字符串传递
data:JSON.stringify(idList),
//指定传输数据类型,不可缺少
contentType:"application/json",
//成功后的方法
sucess:function(result){ }
});
}); //添加角色,使用数组传递数据,用于保存
$(document).ready(function(){
//新增角色数组
var roleList=[
{roleName:'role_name_1',note:'note_1'},
{roleName:'role_name_2',note:'note_2'},
{roleName:'role_name_3',note:'note_3'}
];
//jQuery的post请求
$.post({
url:"./params/addRoles.do",
//将JSON转化为字符串传递
data:JSON.stringify(roleList),
contentType:"application/json",
//成功后的方法
success:function(result){
}
});
});
</script>
</head>
<body>
<!-- 上级目录../ 本级目录./ 根目录/ 也就是http://localhost:8080/-->
<!--role.html访问路径为 http://localhost:8080/html/role.html,html/**映射为WEB-INF/html/ -->
<!--params/commonParams.do的访问目录为 http://localhost:8080/params/commonParams.do?roleName=li¬e=yafei -->
<!-- 所以可以使用../或者/ --> <!-- ./代表 html/ -->
<form id="form" action="/params/requestParam.do">
<table>
<tr>
<td>角色名称</td>
<td><input id="roleName" name="roleName" value="" /></td>
</tr>
<tr>
<td>备注</td>
<td><input id="note" name="note" /></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
5.5;controller中添加相应的方法
@RequestMapping("/findRoles")
public ModelAndView findRoles(@RequestBody RoleParams roleParams){
System.out.println(roleParams.getRoleName());
System.out.println(roleParams.getNote());
System.out.println(roleParams.getPageParams());
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return mv;
} /**
* 接收列表数据和表单序列化
*/
@RequestMapping("/deleteRoles")
public ModelAndView deleteRoles(@RequestBody List<Long> idList){
ModelAndView mv=new ModelAndView();
//删除角色
int total;//删除之后返回的记录条数
mv.addObject("total", "total");
//json视图
mv.setView(new MappingJackson2JsonView());
return mv;
} /**
* 添加角色方法
*/
@RequestMapping("/addRoles")
public ModelAndView addRoles(@RequestBody List roleList){
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
mv.setView(new MappingJackson2JsonView());
return mv;
}
6:接收序列化表单数据 ,javascript代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.0.js">
</script>
<script type="text/javascript">
//提交序列化表单
$(document).ready(function(){
$("#commit").click(function() { //需要下面的id为commit的按钮触发
var str=$("form").serialize();
//提交表单
$.post({url:"/params/commonParamPojo2.do",
//将form数据序列化,传递给后台,则将数据以roleName=xxx&¬e=xxx传递
data:str,
//成功后的方法
success:function(result) {
}
});
});
});
</script>
</head>
<body>
<form id="form">
<table>
<tr>
<td>角色名称</td>
<td><input id="roleName" name="roleName"/></td>
</tr>
<tr>
<td>备注</td>
<td><input id="note" name="note"/></td>
</tr>
<tr>
<td></td>
<td align="right"><input id="commit" type="button" value="提交"/></td> <!--触发#commit方法-->
</tr>
</table>
</form>
</body>
</html>
6.1:接收数据的方法
/**
* 接收序列化表单,序列化后的数据,用传递过来的参数名直接接收即可
*/
@RequestMapping("/commonParamPojo2")
public ModelAndView commonParamPojo2(String roleName,String note){
System.out.println("commonParamPojo2");
System.out.println("roleName=>"+roleName);
System.out.println("note=>"+note);
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return mv;
}
springmvc接收参数的更多相关文章
- springMVC接收参数的区别form data与query string parameters与request payload
在AJAX请求中,我见过有三种form表单数据类型提交. 第一种:form data, 第二种:query string parameters,第三种:request payload. 在google ...
- 实用———springmvc接收参数校验
https://www.cnblogs.com/funyoung/p/8670550.html https://www.cnblogs.com/monkeydai/p/10068547.html He ...
- springMVC接收参数 xml/json
springMVC参数接收 作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可 如果不一样也可以,通过@RequestPara ...
- springmvc接收参数为日期类型
用单个Date类型接收日期类型时,会出现报错,加上initBinder的方法 意思是将所有传入的参数都通过此方法,如果过是日期通过日期格式化器进行格式化 如果是接收类型为对象内的属性为Date类型时 ...
- springMVC接收参数的几种方式
Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...
- SpringMVC接收参数的注解笔记
1.@RequestParam var param = {}; param.keys = delKeys.join();//delKeys是数组,如delKeys=['a',b','c'],join函 ...
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...
- SpringMVC框架笔记01_SpringMVC的使用案例和架构组件_SpringMVC和Mybatis整合_接收参数
目录 第1章:SpringMVC简介 1.1 什么是SpringMVC 1.2 SpringMVC的处理流程 第2章:SpringMVC入门程序 2.1 场景描述 2.2 步骤分析 2.3 步骤一:创 ...
- SpringMVC接受参数若干问题
最近2年在工作问题总结中,好几次遇到了SpringMVC接收参数的问题,今天特别总结下. SpringMVC接收参数的方法: Html参数输入: <input name="stat ...
随机推荐
- 122、详解Glide图片加载库常用方法
转载:http://blog.csdn.net/android_xiong_st/article/details/53129256 Glide加载网络图片, 显示的还是以前的图片! (最全解决方案!) ...
- 《转载》IntelliJ 2016.2 IDEA 中进行 Java Web 项目开发配置
本文转载自 https://segmentfault.com/a/1190000007088964 1. 新建一个 Web Application 项目 打开 IntelliJ,选择新建项目: 左边栏 ...
- open-falcon之graph
功能 存储agent push的数据 为query 提供查询数据接口 参考RRDtool的理念,在数据每次存入的时候,会自动进行采样.归档.在默认的归档策略,一分钟push一次的频率下, 历史数据保存 ...
- Delphi XE开发 Android 开机自动启动
https://blog.csdn.net/tanqth/article/details/74357209 Android 下的广播 在Android下,要让我们开发的APP能在开机时自动启动,必须使 ...
- css笔记 - 张鑫旭css课程笔记之 padding 篇
[padding地址](https://www.imooc.com/learn/710) 一.padding与容器尺寸之间的关系 padding会影响元素的尺寸(通常情况下是通过增加/挤压内容区域) ...
- 第三步 Cordova 3.0(及以上版本) 添加插件
1.使用命令生成项目 例:cordova create jy110 com.example.jy110 jy110 2.使用命令添加插件(如果报错,可能是网络问题,可以多试几次,直到成功) 例:cor ...
- os.walk的用法
import os path = 'C:\\aa' for root,dirs,files in os.walk(path): print("Root=",root,'dirs=' ...
- [工具] 护眼宝 – 傻瓜版屏幕蓝光过滤应用[Win/Android]
护眼宝 是一款 Windows.Android 下的屏幕蓝光过滤工具,傻瓜式操作,支持智能模式.疲劳提醒,可以有效的保护视力及减小夜间使用电脑.手机对睡眠对影响. 来自发现频道. 类似应用有很多了 ...
- HDU-1394 Minimum Inversion Number(线段树求逆序数)
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- hdu4027Can you answer these queries?【线段树】
A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use ...