所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上

  • @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请求参数绑定的更多相关文章

  1. Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息

    首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...

  2. Spring MVC温故而知新 – 参数绑定、转发与重定向、异常处理、拦截器

    请求参数绑定 当用户发送请求时,根据Spring MVC的请求处理流程,前端控制器会请求处理器映射器返回一个处理器,然后请求处理器适配器之心相应的处理器,此时处理器映射器会调用Spring Mvc 提 ...

  3. Spring MVC初始化参数绑定

    初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   proper ...

  4. spring mvc请求参数中文乱码解决方案

    POST 请求 在web.xml中加上增加过滤器 <filter> <filter-name>encodingFilter</filter-name> <fi ...

  5. spring mvc 请求参数日期格式化 代码

    package com.sbl.pay.subaccount.converter; import java.text.DateFormat; import java.text.SimpleDateFo ...

  6. Spring3 MVC请求参数获取的几种方法

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

  7. Spring3 MVC请求参数获取的几种方法[转]

    Spring3 MVC请求参数获取的几种方法 Spring3 MVC请求参数获取的几种方法 一.      通过@PathVariabl获取路径中的参数 @RequestMapping(value=& ...

  8. SpringMVC 请求参数绑定

    什么是请求参数绑定 请求参数格式 默认是key/value格式,比如:http:xxxx?id=1&type=2 请求参数值的数据类型 都是字符串类型的各种值 请求参数值要绑定的目标类型 Co ...

  9. Spring RestController 请求参数详解

    Spring RestController 请求参数详解 引用作者jpfss 在阅读之前,最好先了解http请求的get,post,以及各种head头类型,请求参数类型. 无参数,设置RestCont ...

随机推荐

  1. innobackupex实现对MySQL的增量备份与还原

    备份增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --defaults-file=/etc/my.cnf --user root --password cheng ...

  2. POJ 3046 Ant Counting(递推,和号优化)

    计数类的问题,要求不重复,把每种物品单独考虑. 将和号递推可以把转移优化O(1). f[i = 第i种物品][j = 总数量为j] = 方案数 f[i][j] = sigma{f[i-1][j-k], ...

  3. hdu-1166 敌兵布阵---树状数组模板

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目大意: 维护动态的区间和,单点更新,就是模板题 #include<iostream& ...

  4. linux怎么进home目录下

    可以使用cd命令,cd命令的功能是切换到指定的目录: 命令格式:cd [目录名] 有几个符号作为目录名有特殊的含义: “/”代表根目录.“..”代表上一级目录.“~”代表HOME目录.“-”代表前一目 ...

  5. datetime 插件

    1  写一段文本 <div id="nomarl-wrap"> <div class="form-group"> <label c ...

  6. Repeater控件里面取不到CheckBox的值

    然后在后台需要取到,选中了那些 然后在后台怎么取也取不到,当时就纳闷了,然后开始怀疑自己的代码是不是错了,经过仔细一看,我的妈呀,加载事件了差一句话......整个人都不好了 加载事件差这句话不行,补 ...

  7. 项目:Vue+node+后台管理项目小结

    序:本文主要分两块说:项目机制,具体用到的知识块. 1. 项目机制 项目的原型以vue-cli为原型,进行项目的初步构建.项目以node.js服务和webpack打包机制为依托,将.vue文件打包为浏 ...

  8. jquery淡入淡出轮播图

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. 51nod——2487小b和环

    dp[ i ][ 0 ] : 第i个位置不取 dp[ i ][ 1 ] : 第i个位置取 这样就可以得到状态转移方程: dp[i][0]=max(max(dp[i][0],dp[i-1][1]),dp ...

  10. Win 无法安装 python 包

    Win 上使用 pip install 安装出错 使用 wheel 安装 pip install wheel 下载 编译包 http://www.lfd.uci.edu/~gohlke/pythonl ...