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 ...
随机推荐
- Material Design系列第三篇——Using the Material Theme
Using the Material Theme This lesson teaches you to Customize the Color Palette Customize the Status ...
- web基础----->jersey整合jetty开发restful应用(一)
这里介绍一个jersey与jetty整合开发restful应用的知识.将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水. jersey与jetty的整合 一.创建一个maven项目,pom.xml的 ...
- 【Shell脚本编程系列】Shell脚本开发的习惯和规范
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...
- HashRouter与BrowserRouter的异同
项目中控制路由跳转使用的是BrowserRouter 在开发过程中使用是没有问题的,但是将页面上传至服务器之后,问题就来了:用户访问的资源不存在,页面是空白的. 原因: 在browserHistory ...
- Kerberos认证与攻击学习总结
0.背景 聆听了n1nty大佬(90后黑客代表)的谆谆指导,学习了n1nty大佬的基本操作,决定总结一下,做一个简要的读书笔记,也把之前自己记录的关于Windows的安全的一些博客能够串联起来.所以首 ...
- zabbix-proxy配置
1,proxy配置 # cat /etc/zabbix/zabbix_proxy.conf Server=192.168.1.1 Hostname=proxy.com LogFile=/tmp/zab ...
- 【JSP】JSP指令
JSP指令 说明: 1.JSP指令用于告知JSP 引擎转译JSP时的转化参数,他们不产生输出信息,只是在JSP的转译和编译期间起作用. 2.JSP指令必须写在规定的格式中: <%@ [go ...
- jenkins中windows节点设置开机自启动slave-agent
做web UI自动化时,为了提高效率,用了多台windows节点来跑自动化,但slave-agent每次在关机后都得手工启动,麻烦,网上看到了一系列说启动任务中,感觉还是不考虑,这里使用windows ...
- Android 国内集成使用谷歌地图
extends:http://blog.csdn.net/qduningning/article/details/44778751 由于众做周知的原因在国内使用谷歌地图不太方便,在开发中如果直接使用会 ...
- spark 将dataframe数据写入Hive分区表
从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API.Da ...