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 ...
随机推荐
- 【vue学习】vue中怎么引用laydate.js日期插件
此贴意在解决一个妹子的问题 https://q.cnblogs.com/q/101462 下载js包 http://www.layui.com/laydate/ 将laydate下载的包解压放入sta ...
- 【盘古分词】Lucene.Net 盘古分词 实现公众号智能自动回复
盘古分词是一个基于 .net framework 的中英文分词组件.主要功能 中文未登录词识别 盘古分词可以对一些不在字典中的未登录词自动识别 词频优先 盘古分词可以根据词频来解决分词的歧义问题 多元 ...
- 非IMU模式下DML语句产生的REDO日志内容格式解读
实验内容:非IMU模式下DML语句产生的REDO日志内容格式解读 最详细的解读是UPDATE的. 实验环境准备 11G中默认是开启IMU特性的,做此实验需要关闭此特性. alter system se ...
- MFC 刷新函数:Invaldate,UpdateWindow,InvaldateRect
在窗口刷新和绘制的过程中,常常需要用到窗口刷新函数.一般用于窗口图形刷新的函数有:UpdateWindows().Invaldate().InvaldateRect(). 先说UpdateWindow ...
- UINavigationItem 设置UIBarButtonItem
转:http://hi.baidu.com/ivan_xu/item/237bb1ad77eff9b028ce9d7c 有A.B两个ViewController,假如A push B: UINavig ...
- linux的shell后门尝试以及Cython转成C代码编译
零.背景 最近研究了一下之前的反弹shell的python代码块,写了一点代码尝试在LInux下绑定和反弹shell(正反向),看了一些代码,基本是两种思路.1.本地shell的输入输出通过管道与so ...
- C# XML对象序列化、反序列化
XML 序列化:可以将对象序列化为XML文件,或者将XML文件反序列化为对象还有种方法使用LINQ TO XML或者反序列化的方法从XML中读取数据. 最简单的方法就是.net framework提供 ...
- kernel中文件的读写操作可以使用vfs_read()和vfs_write
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...
- 计蒜客 31453 - Hard to prepare - [递归][2018ICPC徐州网络预赛A题]
题目链接:https://nanti.jisuanke.com/t/31453 After Incident, a feast is usually held in Hakurei Shrine. T ...
- stress test - volume test
D:\wamp64\bin\mysql\mysql5.7.11\bin>mysqlslap --delimiter=";" --query=" INSERT I N ...