自定义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. 20145303刘俊谦 《Java程序设计》第三周学习总结

    20145303刘俊谦 <Java程序设计>第三周学习总结 教材学习内容总结 1.类与对象: 类:对现实生活中事物的描述,定义类时用关键词class 对象:这类事物实实在在存在的个体,利用 ...

  2. COGS 197 [HAOI2008] 排名系统

    ★★★☆   输入文件:rank.in   输出文件:rank.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描述] 排名系统通常要应付三种请求:上传一条新的得分记录.查询 ...

  3. win10下搭建jz2440v3(arm s3c2440)开发及gdb调试环境【转】

    本文转载自:https://blog.csdn.net/newjay03/article/details/72835758 本来打算完全在Ubuntu下开发的,但是水平有限,没有在Ubuntu下找到合 ...

  4. linux下如何制作ext4文件系统镜像

    1.生成一个空的2MiB文件 dd if=/dev/zero of=rootfs.ext4 bs=1024 count=2048 (指定每一块大小为1024字节,一共又2048块,那么就是2048 * ...

  5. uboot的FIT功能

    1.FIT介绍 Flattend Image Tree 英文原版介绍: FIT is formally a FDT, which can include images of various types ...

  6. Ubuntu 使用root登陆界面

    打开终端开启root账户 :sudo passwd -u root 输入当前用户的密码 2.为root账户设置密码:sudo passwd root 设置root密码,输入两次 3.进入到/usr/s ...

  7. java开发中的诡异事件

    1.Excel中的诡异'\r' 2.springMVC中参数莫名的不匹配 今天在使用springmvc测试一个controller方法一直访问失败,400错误,百思不得其解 先是问同事,然后一起讨论了 ...

  8. git revert

    1. 我认为这是正确的做法: git fetch --all git reset --hard origin/master git fetch下载远程最新的,但不尝试,或重订任何东西. 然后,git ...

  9. brpc编译运行

    自百度开源brpc后就一直在关注,看了下brpc都源码,感觉大牛写的果然不一样,由于之前我做c++游戏服务器开发,所以主要看了下网络底层代码,收益颇多,果然一天不学习就要落伍. 现在主要和大家说下我编 ...

  10. 【Network architecture】Rethinking the Inception Architecture for Computer Vision(inception-v3)论文解析

    目录 0. paper link 1. Overview 2. Four General Design Principles 3. Factorizing Convolutions with Larg ...