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

  • @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. 忽略mysql库的同步

    忽略mysql库的同步,请使用: stop slave sql_thread; change replication filter replicate_ignore_db=(mysql);

  2. 简析平衡树(二)——Treap

    前言 学完了替罪羊树,我决定再去学一学\(Treap\).一直听说\(Treap\)很难,我也花了挺久才学会. 简介 \(Treap\)这个名字真的挺有内涵: \(\color{red}{Tree}\ ...

  3. python 基础之列表切片内置方法

    列表操作 c=['cx','zrd','ajt','dne'] #定义一个列表,有4个元素 #增删改查 print(c[3]) #从0计数 测试 D:\python\python.exe D:/unt ...

  4. 机器学习中正则化项L1和L2的直观理解

    正则化(Regularization) 概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数的平方的和的开方值. L0正则化 稀疏的参数可以防止 ...

  5. HTML 5.1 的 14 个新特性(含使用案例)

    HTML5 属于万维网联盟 (W3C), 这个组织为整个网络界提供了标准,如此形成的协议可在全世界通行.在 2016 年 11 月, W3C 对长期行使的 HTML 5 标准进行了更新,它是2年内的第 ...

  6. jpeg解码库使用实例

    jpeg库下载地址: http://www.ijg.org/ 交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpe ...

  7. 项目十八-Hadoop+Hbase分布式集群架构“完全篇”

    本文收录在Linux运维企业架构实战系列 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建,操作完成后整理的个人心得,分享给大家~~~ 1.认识Hadoop和Hbase 1.1 hadoop简 ...

  8. nginx安装php环境

    1.php下载地址 https://secure.php.net/downloads.php(此次安装版本为7.0.33) 2.安装依赖的包 yum -y install libxml2 yum -y ...

  9. tp5.1发送邮件

    <?php namespace app\admin\controller; use think\Controller; use think\Request; use PHPMailer\PHPM ...

  10. vue 中有时候是数据没有同步的问题

    1,在项目中,在做表格的数据渲染的时候,表格中有input标签的数据来进行双向绑定, this.$set(this.tableTitle.money, index, money[index]+isMo ...