版权声明:随意转载。 https://blog.csdn.net/dengjili/article/details/84639845
工程代码
github: https://github.com/dengjili/springmvc
自定义一对一转换器Converter
自定义Converter
@Component("stringToPojoConverter")
public class StringToPojoConverter implements Converter<String, BeanParam> {
@Override
public BeanParam convert(String source) {
String[] split = source.split("-");
BeanParam bean = new BeanParam();
bean.setName(split[0]);
bean.setNote(split[1]);
return bean;
}
}
bean
public class BeanParam {
private String name;
private String note;
// serter、geter
}
配置转换器
<!-- 配置转换器 -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="stringToPojoConverter" />
</set>
</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService" />
控制器测试
// http://localhost:8080/springmvc/convertOne2One?beanParam=abc-ef
@RequestMapping("/convertOne2One")
public ModelAndView convertOne2One(BeanParam beanParam) {
ModelAndView mv = new ModelAndView();
mv.setViewName("convert");
return mv;
}
系统格式化器Formatter
前端代码:formatter.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>格式化学习</title>
</head>
<body>
<h2>格式化学习</h2>
<form id="form" action="format" method="post">
<table>
<tr>
<td>日期</td>
<td><input id="date" name="date" value="2018-01-12"/></td>
</tr>
<tr>
<td>金额</td>
<td><input id="amount" name="amount" value="123,000.00"/></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="点击"/></td>
</tr>
</table>
</form>
</body>
</html>
控制器
@RequestMapping("/format")
public ModelAndView format(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date, @NumberFormat(pattern = "#,###.00") Double amount) {
logger.debug("date==> {}", date);
logger.debug("amount==> {}", amount);
ModelAndView mv = new ModelAndView();
mv.setViewName("formatter");
return mv;
}