自定义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. mybatis家族

    mybatis 优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射. 备注:通过mapper实现数据库与实体类相互映射 MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果 ...

  2. wix toolset 用wixui 默认中文

    light.exe .\test.wixobj -ext WixUIExtension -ext WixUtilExtension -cultures:zh-CN

  3. 读取Jar中的json文件

    现在操作json的jar 都是用的fastjson, 如果需要读取的json文件不在jar包里面,则可以这样获取到: String path = this.getClass().getClassLoa ...

  4. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  5. maven spring MVC 及tomcat

    eclipse+tomcat8+springMVC环境搭建https://blog.csdn.net/code_fighter/article/details/79169058 Eclipse+Tom ...

  6. 在ajax请求下的缓存机制

    1.在服务端加 header(“Cache-Control: no-cache, must-revalidate”);2.在ajax发送请求前加上 anyAjaxObj.setRequestHeade ...

  7. 关于Java中常用加密/解密方法的实现

    安全问题已经成为一个越来越重要的问题,在Java中如何对重要数据进行加密解密是本文的主要内容. 一.常用的加密/解密算法 1.Base64 严格来说Base64并不是一种加密/解密算法,而是一种编码方 ...

  8. 英语每日阅读---5、VOA慢速英语(翻译+字幕+讲解):美国人口普查局表示美国人受教育程度提升

    英语每日阅读---5.VOA慢速英语(翻译+字幕+讲解):美国人口普查局表示美国人受教育程度提升 一.总结 一句话总结: a.Thirty-four percent - college degree: ...

  9. 编码转换 Native / UTF-8 / Unicode

    Native/Unicode Native   这是一个例子,this is a example Unicode 这是一个例子,this is a example Native/UTF-8 Nativ ...

  10. ubuntu 14.04 如何安装nvidia显卡驱动 [转载]

    我的机子装的是64位ubuntu 14.04 LTS系统,显卡是GeForce 405 ,想使用cuda所以需要装NVidia官方驱动,但是总是碰到 nouveau 驱动正在使用的问题.找了好久,网上 ...