Spring MVC使用篇(九)—— 类型转换器

1、综述

  在前面的各种演示案例中,表单提交的无论是int还是double类型的请求参数,用于处理该请求的处理器方法的形参,均可直接接收到相应类型的相应数据,而非接收到String再手动转换。那是因为在Spring MVC框架中,有默认的类型转换器。这些默认的类型转换器,可以将String类型的数据,自动转换为相应类型的数据。

  但默认转换器并不是可以将用户提交的String转换为所有用户需要的类型。此时,就需要自定义类型转换器了。

  例如,在Spring MVC的默认类型转换器中,没有日期类型的转换器,因为日期的格式太多。若要使表单中提交的日期字符串,被处理器方法形参直接接收为java.util.Date,则需要自定义类型转换器了。

2、搭建测试环境

  本案例完成一个自定义的日期类型的类型转换器。由于在之前的系列文章中已经多次提到如何搭建一个Spring MVC的演示项目开发环境,因此这里不再赘述,直接从修改前台JSP页面开始。详细的如何搭建Spring MVC环境请查看系列文章(Spring MVC使用篇(二)—— 环境搭建)。

  首先,将model下的UserController文件进行修改,对原本的User对象模型增加名为“loginDate”的属性,含义为用户的注册日期。具体修改的代码如下:

package com.ccff.model;

import java.util.Date;

public class User {
   
   
    private int userId;
    private String username;
    private String password;
    private Date loginDate;

    public Date getLoginDate() {
   
   
        return loginDate;
    }

    public void setLoginDate(Date loginDate) {
   
   
        this.loginDate = loginDate;
    }

    public int getUserId() {
   
   
        return userId;
    }

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

    public String getUsername() {
   
   
        return username;
    }

    public void setUsername(String username) {
   
   
        this.username = username;
    }

    public String getPassword() {
   
   
        return password;
    }

    public void setPassword(String password) {
   
   
        this.password = password;
    }
}

  其次,在jsp/user文件夹中新建名为“convertTest.jsp”的JSP页面,具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
<!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>convertTest</title>
    </head>
    <body>
        <h3>用户注册</h3>
        <form action="doConvertTest.action" method="post">
            <table width="300px;" border=1>
                <tr>
                    <td>用户编号:</td>
                    <td><input type="text" name="userId" id="userId" /></td>
                </tr>
                <tr>
                    <td>用户名:</td>
                    <td><input type="text" name="username" id="username" /></td>
                </tr>
                <tr>
                    <td>密 码:</td>
                    <td><input type="password" name=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值