spring-boot validation i18n

@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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章