spring mvc 参数传递的三种方式

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd">
    <!-- spring mvc 注解驱动 -->
    <mvc:annotation-driven />
    <!-- 扫描器 -->
    <context:component-scan base-package="com" />

    <!-- 配置视图 解析器 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀和后缀 -->
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

controller

package com.stone.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.stone.bean.UserInfo;

/**
 * user/list.do user/add.do
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/add1.do")
    public String add(HttpServletRequest request) {
        String userNum = request.getParameter("userNum");
        String passWord = request.getParameter("passWord");
        System.out.println("userNum:" + userNum + "   passWord:" + passWord);
        return "user_add1";
    }

    @RequestMapping("/add2.do")
    public String add2(
            @RequestParam(value = "number", defaultValue = "123") String userNum,
            String passWord) {
        System.out.println("userNum:" + userNum + "   passWord:" + passWord);
        return "user_add1";
    }

    @RequestMapping("/add3.do")
    public String add3(UserInfo user) {
        System.out.println(user);
        return "user_add1";
    }

    @RequestMapping("/add4.do")
    public String add4(Integer userId, Date userTime) {
        System.out.println(userId);
        System.out.println(userTime);
        return "user_add1";
    }

    /**
     * 时间属性编辑器
     */
//    @InitBinder
//    public void initBinder(ServletRequestDataBinder bin) {
//        SimpleDateFormat dateFormat = new SimpleDateFormat(
//                "yyyy-MM-dd HH:mm:ss");
//        CustomDateEditor cust = new CustomDateEditor(dateFormat, true);
//        bin.registerCustomEditor(Date.class, cust);
//    }
}

jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>hello</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

</head>

<body>
    <h1>用户信息添加</h1>
    <form action="user/add1.do" method="post">
        账号:<input name="userNum" type="text" /> 密码:<input name="passWord"
            type="text" /> <input type="submit" />
    </form>
    <h1>用户信息添加</h1>
    <form action="user/add2.do" method="post">
        账号:<input name="number" type="text" /> 密码:<input name="passWord"
            type="text" /> <input type="submit" />
    </form>
    <h1>用户信息添加</h1>
    <form action="user/add3.do" method="post">
        账号:<input name="userId" type="text" /><br /> 姓名:<input
            name="userName" type="text" /> 性别:<input name="userSex" type="text" />
            兴趣爱好:
            <input type="checkbox" name="userxq" value="LOL"/>LOL
            <input type="checkbox" name="userxq" value="英雄"/>英雄
            <input type="checkbox" name="userxq" value="DOTA"/>DOTA<br/>
            时间:<input name="userTime" type="text" />
        <input type="submit" />
    </form>
    <h1>用户信息添加</h1>
    <form action="user/add4.do" method="post">
        账号:<input name="userId" type="text" /><br />
            时间:<input name="userTime" type="text" />
        <input type="submit" />
    </form>
</body>
</html>

java bean

package com.stone.bean;

import java.util.Arrays;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

public class UserInfo {

    private Integer userId;
    private String userName;
    private String userSex;
    private String[] userxq;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date userTime;

    @Override
    public String toString() {
        return "UserInfo [userId=" + userId + ", userName=" + userName
                + ", userSex=" + userSex + ", userxq="
                + Arrays.toString(userxq) + ", userTime=" + userTime + "]";
    }

    public Date getUserTime() {
        return userTime;
    }

    public void setUserTime(Date userTime) {
        this.userTime = userTime;
    }

    public String[] getUserxq() {
        return userxq;
    }

    public void setUserxq(String[] userxq) {
        this.userxq = userxq;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

}
时间: 2024-10-09 06:05:15

spring mvc 参数传递的三种方式的相关文章

spring mvc handler的三种方式

springmvc.xml 三种方式不能针对一个controller同时使用 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="

SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. Spring依赖注入(

Spring 使用AspectJ的三种方式

Spring 使用AspectJ 的三种方式 一,使用JavaConfig 二,使用注解隐式配置 三,使用XML 配置 背景知识: 注意 使用AspectJ 的 时候 要导入相应的Jar 包 嗯 昨天还碰到了这样的问题: Caused by: java.lang.IllegalArgumentEx http://pic.cnhubei.com/space.php?uid=1132&do=album&id=814854http://pic.cnhubei.com/space.php?uid=

Spring学习(二)spring ioc注入的三种方式

一.spring ioc注入有哪三种方式: a setter 原理 : 在目标对象中,定义需要注入的依赖对象对应的属性和setter方法:"让ioc容器调用该setter方法",将ioc容器实例化的依赖对象通过setter注入给目标对象,封装在目标对象的属性中. b 构造器 原理 : 为目标对象提供一个构造方法,在构造方法中添加一个依赖对象对应的参数.ioc容器解析时,实例化目标对象时会自动调用构造方法,ioc只需要为构造器中的参数进行赋值:将ioc实例化的依赖对象作为构造器的参数传入

【SSH三大框架】Spring基础第二篇:Spring依赖注入的三种方式

控制反转(Inversion of Control)和依赖注入(Dependency Injection): 应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它.也可以说,依赖被注入到对象中.所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转. 对于依赖注入,有三种方式: 1.使用属性的setter方法注入 2.使用构造器注入 3.使用注解注入 下面我们介绍下这三种方式: 一.使用属性的setter方法注入 首先,我们写一个

Web开发中获取Spring的ApplicationContext的三种方式

在 WEB 开发中,可能会很少需要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext 一       要想怎么获取 ApplicationContext, 首先必须明白 Spring 内部 ApplicationContext 是怎样存储的.下面我们来跟踪一下源码 首先:从大家最熟悉的地方开始 Java代码   <listener> <

【Spring】创建对象的三种方式

关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 一.通过构造函数创建对象. 2.1 利用无参构造函数+setter方法注入值 最基本的对象创建方式,只需要有一个无参构造函数(类中没有写任何的构造函数,默认就是有一个构造函数,如果写了任何一个构造函数,默认的无参构造函数就不会自动创建哦!!)和字段的setter方法. Person类: package com.

Spring依赖注入的三种方式

Spring依赖注入(DI)的三种方式,分别为: 1. 接口注入 2. Setter方法注入 3. 构造方法注入 下面介绍一下这三种依赖注入在Spring中是怎么样实现的. 首先我们需要以下几个类: 接口 Logic.java 接口实现类 LogicImpl.java 一个处理类 LoginAction.java 还有一个测试类 TestMain.java Logic.java如下: package com.spring.test.di; public interface Logic { pub

struts2简单入门-参数传递的三种方式

三种方式的简单说明 属性传递 把参数定义为属性提供get/set方法. 使用情况 参数少,不需要共享. 演示代码 1 public class LoginAction extends ActionSupport 2 { 3 private String username; 4 private String password; 5 6 public String getUsername() 7 { 8 return username; 9 } 10 11 public String getPass