springmvc 转换器(springmvc教程十一)

版权声明:随意转载。 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;
	}

猜你喜欢

转载自blog.csdn.net/dengjili/article/details/84639845
今日推荐