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 ...
随机推荐
- cordova linux 安装并编出第一个demo-android
cordova可以做到一次编写到处运行各个平台(android.ios.wp.bb.firefoxos.web等几乎所有平台) 手上只有一个android手机 ,安装的时候没有那么顺利,第一大问题就是 ...
- 20145216史婧瑶《Java程序设计》第三次实验报告
实验三 敏捷开发与XP实践 实验内容 使用git上传代码,两个人进行小组合作,队友下载代码并修改再重新上传. 实验步骤 一. 使用git上传代码 1.找到需要push的文件所在文件夹,右键点击Git ...
- 20145216史婧瑶《Java 程序设计》第4周学习总结
20145216 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1 何谓继承 继承基本上就是避免多个类间重复定义共同行为. 在Java中,继承时使用exte ...
- 20145313张雪纯 《Java程序设计》8周学习总结
20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...
- nginx解决跨域问题
背景:由于公司有个项目是.net写的,但是开发人员已经离职好久了.老项目也不怎么变动就没有招新人,于是乎就把项目交接给了一位php开发人员. 今天那位php开发人员跑过来,说https://wap.a ...
- MySQL修改max_allowed_packet
因mysql从库报错Last_IO_Error: Got a packet bigger than 'max_allowed_packet' bytes mysql> show slave st ...
- hiho#1080 更为复杂的买卖房屋姿势 线段树+区间更新
#1080 : 更为复杂的买卖房屋姿势 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho都是游戏迷,“模拟都市”是他们非常喜欢的一个游戏,在这个游戏里面他们 ...
- mac 中终端查看ip 采用 ifconfig
- CGI-FASTCGI-PHPFPM
随意记录,摘自知乎 原文链接:https://segmentfault.com/q/1010000000256516 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式 ...
- js中的内部属性与delete操作符
本文正式地址:http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-configurable 在讲解Configurabl ...