Spring MVC请求参数绑定
所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上
- @RequestParam
绑定单个请求参数到方法参数上
@RequestParam("id") Integer id
将请求参数名为id的变量,绑定到id参数上,如果不知道@RequestParam值,默认从请求参数中取和变量名相同的请求参数
@RequestParam(value = "id",required = false) Integer id
可以通过指定required参数来指定是否必须有这个请求参数,默认是true的。如果true了,那么当出现无法正常参数绑定的话,就会报错。
- @PathVariable
绑定URI中的模板变量到方法参数上
@PathVariable("id") String id
<a href="${pageContext.request.contextPath}/testModule/123/save.do">URI模板变量值绑定</a>
package org.zln.myWeb.controller; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; /**
* Created by sherry on 16/8/18.
*
*/
@Controller
@RequestMapping("/testModule/**")
public class T00_TestController { private Logger logger = LogManager.getLogger(); @RequestMapping("/{num}/save.do")
public String testPathVariable(@PathVariable("num") String num, Model model){
logger.info("模板变量:"+num);
model.addAttribute("num",num);
return "testPathVariable";
}
}
控制器
模板变量的值:<c:out value="${num}"/><br/>
- @CookieValue
绑定Cookie值
- @RequestHeader
绑定请求头
请求参数如果是一个普通的POJO,带有setter方法,Spring MVC会自动将表单参数注入到POJO的成员变量中
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE HTML>
<html>
<head>
<title>Title</title>
<meta charset="UTF-8"/>
</head>
<body> <form action="${pageContext.request.contextPath}/testModule/testModelValue.do" name="testModelValue">
<table>
<thead>演示@ModelValue</thead>
<tbody>
<tr>
<td>姓名:</td>
<td>
<input type="text" placeholder="输入姓名..." name="name"/>
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<input type="text" placeholder="输入年龄..." name="age"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交请求" />
</td>
</tr>
</tbody>
</table>
</form> </body>
</html>
表单
@RequestMapping("testModelValue.do")
public String testModelValue(T00_TestModelValue t00_testModelValue){
logger.info("参数对象:"+t00_testModelValue);
return "testModelValueUI";
}
处理方法
- @SessionAttribute
绑定请求到session范围
- @RequestBody
将内容区数据绑定到方法变量,并自动进行类型转换
- @RequestPart
绑定 "multipart/data" 类型的数据,除了能绑定 @RequestParam能绑定的请求参数外,还能绑定上传的文件
一般请求参数绑定到方法参数上,也可以使用 request 类型的数据去获取,但是还是建议使用特定的注解将请求参数绑定到方法变量上,因为这样使用起来更简单。
Spring MVC请求参数绑定的更多相关文章
- Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息
首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...
- Spring MVC温故而知新 – 参数绑定、转发与重定向、异常处理、拦截器
请求参数绑定 当用户发送请求时,根据Spring MVC的请求处理流程,前端控制器会请求处理器映射器返回一个处理器,然后请求处理器适配器之心相应的处理器,此时处理器映射器会调用Spring Mvc 提 ...
- Spring MVC初始化参数绑定
初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法 使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型 proper ...
- spring mvc请求参数中文乱码解决方案
POST 请求 在web.xml中加上增加过滤器 <filter> <filter-name>encodingFilter</filter-name> <fi ...
- spring mvc 请求参数日期格式化 代码
package com.sbl.pay.subaccount.converter; import java.text.DateFormat; import java.text.SimpleDateFo ...
- Spring3 MVC请求参数获取的几种方法
Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...
- Spring3 MVC请求参数获取的几种方法[转]
Spring3 MVC请求参数获取的几种方法 Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value=& ...
- SpringMVC 请求参数绑定
什么是请求参数绑定 请求参数格式 默认是key/value格式,比如:http:xxxx?id=1&type=2 请求参数值的数据类型 都是字符串类型的各种值 请求参数值要绑定的目标类型 Co ...
- Spring RestController 请求参数详解
Spring RestController 请求参数详解 引用作者jpfss 在阅读之前,最好先了解http请求的get,post,以及各种head头类型,请求参数类型. 无参数,设置RestCont ...
随机推荐
- 【BZOJ4001】[TJOI2015] 概率论(卡特兰数)
点此看题面 大致题意: 问你一棵\(n\)个节点的有根二叉树叶节点的期望个数. 大致思路 看到期望,比较显然可以想到设\(num_i\)为\(i\)个节点的二叉树个数,\(tot_i\)为所有\(i\ ...
- 【BZOJ1857】传送带(分治经典:三分套三分)
点此看题面 大致题意: 一个二维平面上有两条传送带\(AB\)和\(CD\),\(AB\)传送带的移动速度为\(P\),\(CD\)传送带的移动速度为\(Q\),步行速度为\(R\),问你从\(A\) ...
- 启动Jmeter时遇到的几种错误
1.权限不够 解决办法:用管理员权限运行 2.sdk版本太低 解决办法:1)查看当前sdk版本:java -version 2)安装sdk1.7或以上版本(jmeter3.0版本要用sdk1.7及以上 ...
- char的有无符号类型
char 分为有符号性(signed)和无符号型(unsigned)两种: Ø若是signed型,就意味着取值范围为[-128,127]: Ø若是unsigned型,就意味着取值范围为[0,255]: ...
- 前端小记6——项目中常用的ES6方法
现在很多功能用es5的方法也能实现功能,但es6提供的方法显得更为高效.记录下目前常用的几个方法. 1.字符包含 通过str.includes('a')来判断, 若str中包含a则结果为true,否则 ...
- vue2.0中ckeckbox(复选框)的使用心得,及对click事件和change的理解
最近在公司项目中使用vue2.0做开发,在使用checkbox时遇到了一些问题,首先我们先了解一下需求. 如上如所示,在上方复选框被点击时,更改下方p标签的文本内容为:复选框已被选中.并将p标签文字颜 ...
- Qt之QThread随记
这是一篇随记,排版什么的就没有那么好了:) 首先要知道,一个线程在资源分配完之后是以某段代码为起点开始执行的,例如STL内的std::thread,POSIX下的pthread等,都是以函数加其参数之 ...
- TO_DATS() AS ABAP_DATE
有的时候一个想不到的小问题,,才是致命的问题!
- docker部署Ceph分布式存储集群
1.环境准备 3台virtualbox虚拟机,用来安装ceph集群,已用docker-machine安装上了docker,每台虚拟机虚拟创建一个5G的硬盘,用于存储osd数据,例如:/dev/sdb ...
- Java - BigDecimal四舍五入注意事项
如上图,精度后只有一位时,是五舍六入. 如上图,精度后只有第一位不为0时,也是五舍六入. 如上图,精度后至少有两位不为0时,才是四舍五入.