SpringMVC札集(04)——SpringMVC传递参数
自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理
探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制
Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南
在本篇博客中主要讲述jsp页面向SpringMVC传递参数,例如:int,String,对象,包装类型,数组,List,Map。为清楚阐述每种类型的变量传递,故针对每种类型参数的传递都单独写了对应的测试方法且在代码明确注释。
JSP页面
先来瞅瞅测试页面index.jsp的效果:
嗯哼,看到了不?——每个测试我也在页面上进行了标注,它们与Controller中的方法是依次对应的。代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SpringMVC传递参数</title>
</head>
<body>
<hr size="2" color="red" />
<b>1、测试SpringMVC传递int类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testInt.do" method="post">
ID:<input type="text" name="id" id="testIntId"> <br><br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>2、测试SpringMVC传递String类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testString.do" method="post">
姓名:<input type="text" name="name" id="testNameId"> <br><br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>3、测试SpringMVC传递Object类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testUser.do" method="post">
ID: <input type="text" name="id" id="testId">
姓名:<input type="text" name="username" id="testUsername">
性别:<input type="text" name="sex" id="testSex">
地址:<input type="text" name="address" id="testAddress"> <br><br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>4、测试SpringMVC传递包装类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testUserCustom.do" method="post">
ID: <input type="text" name="user.id" id="testId">
姓名:<input type="text" name="user.username" id="testUsername">
性别:<input type="text" name="user.sex" id="testSex">
地址:<input type="text" name="user.address" id="testAddress"> <br><br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>5、测试SpringMVC传递数组类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testArray.do" method="post">
选择1:<input type="checkbox" name="integerArray" value="9527" id="ids1">
选择2:<input type="checkbox" name="integerArray" value="9528" id="ids2">
选择3:<input type="checkbox" name="integerArray" value="9529" id="ids3"><br> <br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>6、测试SpringMVC传递List类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testUserList.do" method="post">
ID: <input type="text" name="userList[0].id" id="testId0">
姓名:<input type="text" name="userList[0].username" id="testUsername0">
性别:<input type="text" name="userList[0].sex" id="testSex0">
地址:<input type="text" name="userList[0].address" id="testAddress0"><br>
ID: <input type="text" name="userList[1].id" id="testId1">
姓名:<input type="text" name="userList[1].username" id="testUsername1">
性别:<input type="text" name="userList[1].sex" id="testSex1">
地址:<input type="text" name="userList[1].address" id="testAddress1"><br><br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red" />
<b>7、测试SpringMVC传递Map类型参数</b><br><br>
<form action="${pageContext.request.contextPath }/user/testUserMap.do" method="post">
ID: <input type="text" name="map['id']" id="testId">
姓名:<input type="text" name="map['username']" id="testUsername">
性别:<input type="text" name="map['sex']" id="testSex">
地址:<input type="text" name="map['address']" id="testAddress"> <br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
Controller
/**
* @author 原创作者:谷哥的小弟
* @blog 博客地址:http://blog.csdn.net/lfdfhl
* @time 创建时间:2017年7月29日 上午9:58:56
* @info 描述信息:SpringMVC传递参数
*/
package cn.com.controller;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.com.domain.User;
import cn.com.domain.UserCustom;
@Controller
@RequestMapping("/user")
public class AnnotationController {
//1、测试SpringMVC传递int类型参数
@RequestMapping(value="/testInt")
public String testInt(Integer id){
System.out.println("---> id="+id);
return "test";
}
//2、测试SpringMVC传递String类型参数
@RequestMapping(value="/testString")
public String testString(String name){
System.out.println("---> name="+name);
return "test";
}
//3、测试SpringMVC传递Object类型参数
@RequestMapping(value="/testUser")
public String testUser(User user){
System.out.println("---> user="+user);
return "test";
}
//4、测试SpringMVC传递包装类型参数
@RequestMapping(value="/testUserCustom")
public String testUserCustom(UserCustom userCustom){
System.out.println("---> userCustom="+userCustom.getUser());
return "test";
}
//5、测试SpringMVC传递数组类型参数
@RequestMapping(value="/testArray")
public String testUserCustom(Integer[] integerArray){
if(integerArray!=null){
int length=integerArray.length;
for(int i=0;i<length;i++){
System.out.println("---> integerArray[i]="+integerArray[i]);
}
}
return "test";
}
//6、测试SpringMVC传递List类型参数
@RequestMapping(value="/testUserList")
public String testUserList(UserCustom userCustom){
if (userCustom!=null) {
List<User> userList = userCustom.getUserList();
if(userList!=null){
for(User user:userList){
System.out.println("---> user="+user);
}
}
}
return "test";
}
//7、测试SpringMVC传递Map类型参数
@RequestMapping(value="/testUserMap")
public String testUserMap(UserCustom userCustom){
if (userCustom!=null) {
Map<String, Object> map = userCustom.getMap();
Set<Entry<String, Object>> entrySet = map.entrySet();
Iterator<Entry<String, Object>> iterator = entrySet.iterator();
while(iterator.hasNext()){
Entry<String, Object> entry = iterator.next();
System.out.println(("---> entry="+entry.getKey()+","+entry.getValue()));
}
}
return "test";
}
}
小结:
- 执行流程:index.jsp —> Controller —> test.jsp
- jsp页面中的name属性的值应与Controller中方法参数的名字相对应。比如在第一个测试示例中jsp中为:
name="id"在Controller中方法参数为:Integer id - 在测试三中,jsp中的name属性的值即为Object对象的属性,比如id,username等
- 在测试四种,测试包装类型与测试三很类似
在该项目中还用到了其它代码,在此一并贴出。
User
/**
* @author 原创作者:谷哥的小弟
* @blog 博客地址:http://blog.csdn.net/lfdfhl
* @time 创建时间:2017年7月29日 上午10:59:56
* @info 描述信息:User类
*/
package cn.com.domain;
public class User {
private Integer id;
private String username;
private String sex;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", sex=" + sex
+ ", address=" + address + "]";
}
}
UserCustom
/**
* @author 原创作者:谷哥的小弟
* @blog 博客地址:http://blog.csdn.net/lfdfhl
* @time 创建时间:2017年7月29日 上午11:38:46
* @info 描述信息:UserCustom类
*/
package cn.com.domain;
import java.util.List;
import java.util.Map;
public class UserCustom {
private User user;
private List<User> userList;
private Map<String, Object> map;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
}
test.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SpringMVC注解开发</title>
<style type="text/css">
p {
font-size: 40px;
font-family: 宋体;
color: red;
background-color: pink;
}
</style>
</head>
<body>
<p>测试SpringMVC传递参数</p>
<br>
</body>
</html>
SpringMVC札集(04)——SpringMVC传递参数的更多相关文章
- SpringMVC札集(05)——SpringMVC参数回显
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(01)——SpringMVC入门完整详细示例(上)
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(02)——SpringMVC入门完整详细示例(下)
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(07)——JSON数据
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(10)——SSM框架整合
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(09)——拦截器
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(08)——文件上传
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(03)——基于注解的SpringMVC入门完整详细示例
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- SpringMVC札集(06)——转发和重定向
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
随机推荐
- kafka监控搭建
1. 下载 wget https://github.com/quantifind/KafkaOffsetMonitor/releases/download/v0.2.1/KafkaOffsetMoni ...
- 自制mysql的rpm包
MySQL安装一般使用RPM或者源码安装的方式.RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整.源码安装的优点是可以自定义安装 ...
- Hive中排序和聚集
//五种子句是有严格顺序的: where → group by → having → order by → limit ; //distinct关键字返回唯一不同的值(返回age和id均不相同的记录) ...
- Spring Cloud OAuth2(二) 扩展登陆方式:账户密码登陆、 手机验证码登陆、 二维码扫码登陆
概要 基于上文讲解的spring cloud 授权服务的搭建,本文扩展了spring security 的登陆方式,增加手机验证码登陆.二维码登陆. 主要实现方式为使用自定义filter. Authe ...
- scrapy之Pymongo
用Pymongo保存数据 爬取豆瓣电影top250movie.douban.com/top250的电影数据,并保存在MongoDB中. items.py class DoubanspiderItem( ...
- HTML之实现页面缓存
一般来说,对于html页面,一个站点,每个页面都会有相同的公共文件,比如页面的头部.尾部.侧边栏目.公共JS等.访问站点下的每一个页面,相同的公共文件,都需要重复从服务器下载.从性能和带宽角度看,重复 ...
- WPF TextBox 获得焦点后,文本框中的文字全选中
textbox.GotFocus 事件处理 Textbox.SelectAll() 是不行的, 这样处理会发生的情况是: 1) textbox1 当前没有焦点, 内容为 someText. 2) 鼠标 ...
- HTML子页面保存关闭并刷新父页面
1.思路是子页面保存后,后台传递成功的js到前台. 2.js的原理是——子页面调用父页面的刷新 子页面 function Refresh() { window.parent.Re ...
- Angular----安置物流项目前端框架经验总结
一.架构方面 (一) Angular框架有service .controller层: 在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器) ...
- dva-loading使用方法
1. 下载dva-loading npm install dva-loading --save 2. 导入并使用dva-loading import createLoading from 'dva-l ...