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&note=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&note=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&&note=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接收参数的更多相关文章

  1. springMVC接收参数的区别form data与query string parameters与request payload

    在AJAX请求中,我见过有三种form表单数据类型提交. 第一种:form data, 第二种:query string parameters,第三种:request payload. 在google ...

  2. 实用———springmvc接收参数校验

    https://www.cnblogs.com/funyoung/p/8670550.html https://www.cnblogs.com/monkeydai/p/10068547.html He ...

  3. springMVC接收参数 xml/json

    springMVC参数接收 作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可 如果不一样也可以,通过@RequestPara ...

  4. springmvc接收参数为日期类型

    用单个Date类型接收日期类型时,会出现报错,加上initBinder的方法 意思是将所有传入的参数都通过此方法,如果过是日期通过日期格式化器进行格式化 如果是接收类型为对象内的属性为Date类型时 ...

  5. springMVC接收参数的几种方式

    Spring3 MVC请求参数获取的几种方法 一.      通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...

  6. SpringMVC接收参数的注解笔记

    1.@RequestParam var param = {}; param.keys = delKeys.join();//delKeys是数组,如delKeys=['a',b','c'],join函 ...

  7. springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例

    案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...

  8. SpringMVC框架笔记01_SpringMVC的使用案例和架构组件_SpringMVC和Mybatis整合_接收参数

    目录 第1章:SpringMVC简介 1.1 什么是SpringMVC 1.2 SpringMVC的处理流程 第2章:SpringMVC入门程序 2.1 场景描述 2.2 步骤分析 2.3 步骤一:创 ...

  9. SpringMVC接受参数若干问题

    最近2年在工作问题总结中,好几次遇到了SpringMVC接收参数的问题,今天特别总结下.  SpringMVC接收参数的方法:  Html参数输入: <input name="stat ...

随机推荐

  1. 【vue学习】vue中怎么引用laydate.js日期插件

    此贴意在解决一个妹子的问题 https://q.cnblogs.com/q/101462 下载js包 http://www.layui.com/laydate/ 将laydate下载的包解压放入sta ...

  2. 【盘古分词】Lucene.Net 盘古分词 实现公众号智能自动回复

    盘古分词是一个基于 .net framework 的中英文分词组件.主要功能 中文未登录词识别 盘古分词可以对一些不在字典中的未登录词自动识别 词频优先 盘古分词可以根据词频来解决分词的歧义问题 多元 ...

  3. 非IMU模式下DML语句产生的REDO日志内容格式解读

    实验内容:非IMU模式下DML语句产生的REDO日志内容格式解读 最详细的解读是UPDATE的. 实验环境准备 11G中默认是开启IMU特性的,做此实验需要关闭此特性. alter system se ...

  4. MFC 刷新函数:Invaldate,UpdateWindow,InvaldateRect

    在窗口刷新和绘制的过程中,常常需要用到窗口刷新函数.一般用于窗口图形刷新的函数有:UpdateWindows().Invaldate().InvaldateRect(). 先说UpdateWindow ...

  5. UINavigationItem 设置UIBarButtonItem

    转:http://hi.baidu.com/ivan_xu/item/237bb1ad77eff9b028ce9d7c 有A.B两个ViewController,假如A push B: UINavig ...

  6. linux的shell后门尝试以及Cython转成C代码编译

    零.背景 最近研究了一下之前的反弹shell的python代码块,写了一点代码尝试在LInux下绑定和反弹shell(正反向),看了一些代码,基本是两种思路.1.本地shell的输入输出通过管道与so ...

  7. C# XML对象序列化、反序列化

    XML 序列化:可以将对象序列化为XML文件,或者将XML文件反序列化为对象还有种方法使用LINQ TO XML或者反序列化的方法从XML中读取数据. 最简单的方法就是.net framework提供 ...

  8. kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  9. 计蒜客 31453 - Hard to prepare - [递归][2018ICPC徐州网络预赛A题]

    题目链接:https://nanti.jisuanke.com/t/31453 After Incident, a feast is usually held in Hakurei Shrine. T ...

  10. stress test - volume test

    D:\wamp64\bin\mysql\mysql5.7.11\bin>mysqlslap --delimiter=";" --query=" INSERT I N ...