package org.springframework.samples.mvc.convert;
import java.util.Collection;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/convert")
public class ConvertController {
// http://127.0.0.1:8010/convert/primitive?value=3
@RequestMapping("primitive")
public @ResponseBody String primitive(@RequestParam Integer value) {
return "Converted primitive " + value;
}
// http://127.0.0.1:8010/convert/date/2010-07-04
// requires Joda-Time on the classpath
@RequestMapping("date/{value}")
public @ResponseBody String date(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date value) {
return "Converted date " + value;
}
// http://127.0.0.1:8010/convert/collection?values=1&values=2&values=3&values=4&values=5
// http://127.0.0.1:8010/convert/collection?values=1,2,3,4,5
@RequestMapping("collection")
public @ResponseBody String collection(@RequestParam Collection<Integer> values) {
return "Converted collection " + values;
}
// http://127.0.0.1:8010/convert/formattedCollection?values=2010-07-04,2011-07-04
@RequestMapping("formattedCollection")
public @ResponseBody String formattedCollection(@RequestParam @DateTimeFormat(iso=ISO.DATE) Collection<Date> values) {
return "Converted formatted collection " + values;
}
// http://127.0.0.1:8010/convert/bean?nested.foo=bar&nested.list[0].foo=baz&nested.map[key].list[0].foo=bip
@RequestMapping("bean")
public @ResponseBody String bean(JavaBean bean) {
return "Converted " + bean;
}
//http://127.0.0.1:8010/convert/value?value=123456789
@RequestMapping("value")
public @ResponseBody String valueObject(@RequestParam SocialSecurityNumber value) {
return "Converted value object " + value;
}
//http://127.0.0.1:8010/convert/custom?value=123-45-6789
@RequestMapping("custom")
public @ResponseBody String customConverter(@RequestParam @MaskFormat("###-##-####") String value) {
return "Converted '" + value + "' with a custom converter";
}
}
利用SPRINGMVC实现POJO的赋值及类型转化,将REQUEST中的参数进行类型转化后赋值给POJO的属性。转化类型(字符,数组,日期,数组,MAP,JAVABEAN)