自定义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传递参数的更多相关文章

  1. SpringMVC札集(05)——SpringMVC参数回显

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  2. SpringMVC札集(01)——SpringMVC入门完整详细示例(上)

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  3. SpringMVC札集(02)——SpringMVC入门完整详细示例(下)

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  4. SpringMVC札集(07)——JSON数据

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  5. SpringMVC札集(10)——SSM框架整合

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  6. SpringMVC札集(09)——拦截器

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  7. SpringMVC札集(08)——文件上传

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  8. SpringMVC札集(03)——基于注解的SpringMVC入门完整详细示例

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  9. SpringMVC札集(06)——转发和重定向

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

随机推荐

  1. 非root权限 安装更新gcc

    本文主要参考网络上文章,并根据自己安装出现的问题进行补充. 参考文章: 1.gcc和boost的升级步骤(非root权限):https://blog.csdn.net/u010246947/artic ...

  2. linux go with vscode

    1 install go apt install golang 将会同时安装下列软件:  golang-1.9 golang-1.9-doc golang-1.9-go golang-1.9-src ...

  3. 20145230熊佳炜《网络对抗》实验八:WEB基础

    20145230熊佳炜<网络对抗>实验八:WEB基础 实验目标 Web前端HTML:能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTM ...

  4. localAddress

    $(function(){ <% out.println("/** ip:"+request.getLocalAddr()+"("+request.get ...

  5. ideal开发工具环境设置

    ideal现在是很流行的一种java开发工具,不得不说,它真的很好用.当你使用的时候,需要设置环境. 首先,如果产生乱码,解决如下: 设置为UTF-8 如果项目是maven项目,设置如下: 也可以设置 ...

  6. Redis之Redis

    Redis 环境安装 安装 如果已经安装了老版本3.0.6 1. 卸载软件 sudo apt-get remove redis-server 2. 清除配置 sudo apt-get remove - ...

  7. 数据结构(十一)B树

    之前的二叉排序树,平衡二叉树都是基于二叉树的实现,但是在搜索过程中,效率和树的深度有关,所以就想到把二叉树改为多叉树,B树和B+树都基于多叉树的实现 多路查找树 B树 定义   应用场景   B+树 ...

  8. SQL优化的若干原则

    SQL语句:是对数据库(数据)进行操作的惟一途径:消耗了70%~90%的数据库资源:独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低:可以有不同的写法:易 ...

  9. PyTorch源码解读之torchvision.transforms(转)

    原文地址:https://blog.csdn.net/u014380165/article/details/79167753 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

  10. JDBC 的 PreparedStatement 与 Statement

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...