@Configuration 文件
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 註冊
return new CorsFilter(source);
}
@Bean
public ApiErrorController ApiErrorController() {
return new ApiErrorController();
}
參數類
@Data
public class Param {
// FIXME 如何走國際化?
@NotBlank(message = "{name.notblank}")
// @NotBlank(message = "名字不能爲空")
private String name;
}
資源文件
資源文件在src/main/resources目錄下
messages_zh_CN.properties
name.notblank=\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A
messages_en_US.properties
name.notblank=name must not be blank
controller
@Api(tags = "國際化測試")
@Slf4j
@RestController
@RequestMapping("/free/i18n")
public class I18nController {
@PostMapping("/post")
public String post(@Validated @RequestBody Param param) {
return "ok";
}
}
測試
英文錯誤信息
curl -X POST -H "Accept-Language: en-US" -H "Content-Type: application/json;charset=utf-8" -d '{}' http://127.0.0.1:6118/free/i18n/post
中文錯誤信息
curl -X POST -H "Accept-Language: zh-CN" -H "Content-Type: application/json;charset=utf-8" -d '{}' http://127.0.0.1:6118/free/i18n/post