产生的需求,在springMVC中可以把字符串类型转换为Interage,Double, Date等类型,但是当我们输入的类型不匹配时就不能进行转换
该类应该继承Converter
实现其重载方法convert()
在该方法中执行数据的转换:
我们这里定义是把String对应的日期格式,转换为日期的数据类型
package cn.kitey.utils;
import org.springframework.core.convert.converter.Converter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 把字符串转换为日期
*/
public class StringToDate implements Converter<String, Date> {
/**
*
* @param source 传入的要转换的字符串
* @return
*/
@Override
public Date convert(String source) {
//进行判断
if(source == null){
throw new RuntimeException("您输入的数据为空");
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//把字符串转为时间类型
try {
return df.parse(source);
} catch (Exception e) {
throw new RuntimeException("数据转换失败!");
}
}
}
<!--配置自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.kitey.utils.StringToDate"></bean>
</set>
</property>
</bean>
同时需要在SpringMVC框架支持中添加支持
<!--开启SpringMVC框架注解的支持-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
其中包含了Dae数据类型
package cn.kitey.domain;
import java.util.Date;
public class User {
private Integer id;
private Integer age;
private Date date;
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", age=" + age +
", date=" + date +
'}';
}
}
<%--
Created by IntelliJ IDEA.
User: 小风筝
Date: 2020/6/18
Time: 11:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>params</title>
</head>
<body>
<form action="params/saverUser" method="post">
用户账号:<input type="text" name="id"/><br/>
用户年龄:<input type="text" name="age"/><br/>
用户生日:<input type="text" name="date"/><br/ >
<input type="submit" value="提交">
</form>
</body>
</html>
@RequestMapping(path = “/params”):使用了两重定义
这个方法***saveUser(User user)*** 接收了数据,并进行打印,而且转发网页到success.jsp
package cn.kitey.controller;
import cn.kitey.domain.Account;
import cn.kitey.domain.Iter;
import cn.kitey.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping(path = "/params")
public class ParamController {
@RequestMapping(path = "/saverUser")
public String saveUser(User user){
System.out.println("SaveUser执行了");
System.out.println(user);
return "success";
}
}
在wen.xml中进行配置进而解决中文乱码问题
我们这里是采用了配置过滤器的方法
<!--配置解决中文乱码的的过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--解决中文乱码的问题-->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*
进行该配置后,就可以解决中文乱码问题;
中间还学习了RequestMapping的标签的知识
//method:请的方法 当为method = {RequestMethod.POST Request method ‘GET’ not supported
//params:用于指定限制请求参数条件。支持简单的表达式,要求请求参数的key value 与配置信息必须一样
//headers = {“Accept”} 表示发送的请求必须包含该请求头
@RequestMapping( path = “/testRequestMapping” , params = {“username=kite”}, headers = {“Accept”})
还有获取jsp页面的数据内容,进行封装的详解!
这里就不做太多的讲述了
书海无涯苦作舟!书海有路勤为劲! 不知道对不对了,反正加油吧!
2020/6/18/12:51