写一个枚举类
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;
}
}
这样就搞定了