谷哥的小弟

坚持原创,热衷分享;积累技术,沉淀生活

SpringMVC札集(05)——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)— 使用指南


在上一篇博客中,我们从index.jsp传递参数到Controller中;Controller收到参数后再跳转到test.jsp。即执行流程为:index.jsp —> Controller —> test.jsp。现在我们可以把这些来自index.jsp的参数显示到test.jsp中么?答案是肯定的。这就是本篇博客要讲的参数回显。


简单数据类型的回显

对于简单数据类型,如:Integer、String、Float等使用Model将传入的参数再放到request域实现显示。对于该功能的实现非常简单,我们只需要在Controller的方法中添加Model类型的参数即可,例如:

    //1、测试SpringMVC传递int类型参数及其回显
        @RequestMapping(value="/testInt")
        public String testInt(Integer id,Model model){
            System.out.println("---> id="+id);
            model.addAttribute("id", id);
            return "test";
        }

然后我们在其他页面(例如此处的test.jsp)页面中取出该值即可:

1、测试SpringMVC传递int类型参数,回显结果:${id}

Object数据类型的回显

SpringMVC默认支持Object数据回显,SpringMVC自动将形参中的Object重新放回request域中,request的key为Object的类名(请注意,类名首字母小写)。例如,我们在Controller中这么写:

//3、测试SpringMVC传递Object类型参数及其回显
    @RequestMapping(value="/testUser")
    public String testUser(User user){
        System.out.println("---> user="+user);
        return "test";
    }

然后在test.jsp中取出参数:

3、测试SpringMVC传递Object类型参数,回显结果:${user.id} ${user.username} ${user.sex} ${user.address}

传递数据至下一个页面
我们常常有这样的需求:将数据传递至下一个页面。其实,这个也非常简单可以采用与Model类似的ModelMap即可。例如,我们在Controller中这么写:

//4、测试SpringMVC传递Object至下一个页面
    @RequestMapping(value="/testObject")
    public String testObject(ModelMap modelMap){
        User u=new User();
        u.setId(9527);
        u.setAddress("北京");
        u.setSex("男");
        u.setUsername("周星星");
        modelMap.put("u", u);
        System.out.println("---> user="+u);
        return "test";
    }

然后在test.jsp中取出参数:

4、测试SpringMVC传递Object至下一个页面,回显结果:${u.id} ${u.username} ${u.sex} ${u.address}<br>

按照惯例,贴出该项目中的关键代码;其余部分请参见上一篇博客,不再赘述


index.jsp

<%@ 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传递Object至下一个页面</b><br><br>
    <form action="${pageContext.request.contextPath }/user/testObject.do" method="post">
      <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 org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.com.domain.User;

@Controller
@RequestMapping("/user")
public class AnnotationController {

    //1、测试SpringMVC传递int类型参数及其回显
    @RequestMapping(value="/testInt")
    public String testInt(Integer id,Model model){
        System.out.println("---> id="+id);
        model.addAttribute("id", id);
        return "test";
    }

    //2、测试SpringMVC传递String类型参数及其回显
    @RequestMapping(value="/testString")
    public String testString(String name,Model model){
        System.out.println("---> name="+name);
        model.addAttribute("name", name);
        return "test";
    }

    //3、测试SpringMVC传递Object类型参数及其回显
    @RequestMapping(value="/testUser")
    public String testUser(User user){
        System.out.println("---> user="+user);
        return "test";
    }

    //4、测试SpringMVC传递Object至下一个页面
    @RequestMapping(value="/testObject")
    public String testObject(ModelMap modelMap){
        User u=new User();
        u.setId(9527);
        u.setAddress("北京");
        u.setSex("男");
        u.setUsername("周星星");
        modelMap.put("u", u);
        System.out.println("---> user="+u);
        return "test";
    }

}

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>
    1、测试SpringMVC传递int类型参数,回显结果:${id}<br>
    2、测试SpringMVC传递String类型参数,回显结果:${name}<br>
    3、测试SpringMVC传递Object类型参数,回显结果:${user.id} ${user.username} ${user.sex} ${user.address}<br>
    4、测试SpringMVC传递Object至下一个页面,回显结果:${u.id} ${u.username} ${u.sex} ${u.address}<br>
</body>
</html>

效果图:

这里写图片描述

阅读更多
版权声明: https://blog.csdn.net/lfdfhl/article/details/76383080
个人分类: 后台
所属专栏: SpringMVC札集
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭