springmvc 轉換器(springmvc教程十一)
阿新 • • 發佈:2018-11-30
目錄
工程程式碼
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;
}