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 {
@RequestMapping("primitive")
public @ResponseBody String primitive(@RequestParam Integer value) {
return "Converted primitive " + value;
}
// requires Joda-Time on the classpath
@RequestMapping("date/{value}")
public @ResponseBody String date(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date value) {
return "Converted date " + value;
}
@RequestMapping("collection")
public @ResponseBody String collection(@RequestParam Collection<Integer> values) {
return "Converted collection " + values;
}
@RequestMapping("formattedCollection")
public @ResponseBody String formattedCollection(@RequestParam @DateTimeFormat(iso=ISO.DATE) Collection<Date> values) {
return "Converted formatted collection " + values;
}
@RequestMapping("bean")
public @ResponseBody String bean(JavaBean bean) {
return "Converted " + bean;
}
@RequestMapping("value")
public @ResponseBody String valueObject(@RequestParam SocialSecurityNumber value) {
return "Converted value object " + value;
}
@RequestMapping("custom")
public @ResponseBody String customConverter(@RequestParam @MaskFormat("###-##-####") String value) {
return "Converted '" + value + "' with a custom converter";
}
}