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