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 ...
随机推荐
- P(Y|X) 和 P(X,Y)
P ( x | y ):在Y发生的条件下,X发生的概率.P ( x , y )P(x,y)说明该事件与两个因素有关,比如设是因素A,B.P(x,y)=P{因素A处于x状态,因素B处于y状态}确切地说P ...
- java处理json的工具类(list,map和json的之间的转换)
需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...
- PHP设计模式(六): 单例模式
- git 提交某个内容
git add 你所添加的文件或者文件夹 git commit git push
- 51Nod 1433 0和5(9的倍数理论)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1433 思路: 数论中关于9的倍数的理论:若是一个数能被9整除,则各位数之 ...
- JavaScript高级程序设计-读书笔记(1)
第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l ECMAScript:提供核心语言功能: l 文 ...
- Educational Codeforces Round 13 A、B、C、D
A. Johny Likes Numbers time limit per test 0.5 seconds memory limit per test 256 megabytes input sta ...
- springboot获取配置文件中的内容
代码: GrilApplication.java @SpringBootApplication public class GrilApplication { public static void ma ...
- 【Python】模块学习之ConfigParser读写配置信息
前言 使用配置文件可以在不修改程序的情况下,做到对程序功能的定制.Python 使用自带的configParser模块可以很方便的读写配置文件的信息. configParser 支持的方法 Confi ...
- ZooKeeper原理 --------这可能是把ZooKeeper概念讲的最清楚的一篇文章
相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 我本人曾经使用过 ZooKee ...