寫一個枚舉類
public enum Gender {
MALE("先生","mr"),
FEMALE("女士","miss");
String chinese;
String abbr;
Gender(String chinese,String abbr){
this.chinese = chinese;
this.abbr = abbr;
}
@JsonValue
public String getJsonValue(){
// 反序列化成json時, 枚舉類取中文名
return this.chinese;
}
}
寫一個接口
@Controller
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(value = "/enum",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<Object> enumExample(@RequestParam("name") String name,
@RequestParam("gender") Gender gender) {
HashMap<String, Object> map = new HashMap<String, Object>() {
{
put("name", name);
put("gender", gender);
}
};
return ResponseEntity.ok(map);
}
}
配置 WebMvcConfigurationSupport
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class MyWebMvcConfigurationSupport extends WebMvcConfigurationSupport {
@Override
public FormattingConversionService mvcConversionService() {
FormattingConversionService f = super.mvcConversionService();
f.addConverter(
new Converter<String, Gender>() {
@Override
public Gender convert(String source) {
try {
return Gender.valueOf(source);
} catch(Exception e) {
return null;
}
}
}
);
return f;
}
}
這樣就搞定了