使用 application.yml 文件中的正则表达式并在 pojo class 中使用(模式评估)
using regex from application.yml file and use in pojo class(pattern evaluation)
我尝试了一些方法:
1。 application.yml 文件
internationalchar:
regex:
expression: "^[\p{L}\p{M}\p{Nd}\°\' ]+$"
在 POJO 中使用 Class
@Pattern(regexp = "${internationalchar.regex.expression}", message = "FSTU_4108,Name")
private String name;
错误:索引附近的非法重复 0\r\n${internationalchar.regex.expression}\r\n^"
2.Also 尝试使用转义字符
@Pattern(regexp = "//$//{internationalchar.regex.expression//}", message = "FSTU_4108,Name")
3.Using @Value 属性
@Value("${ficoInternationalChar.regex.expression}")
无法读取我的正则表达式(给出无效名称的错误)
4.
@Value("${internationalchar.regex.expression}")
private String environment;
@Pattern(regexp = environment, message = "FSTU_4108,Name")
private String name;
Attribute value must be constant 错误(尝试将环境设为最终但同样的错误)
注意:我是 java 初学者
很遗憾,@Pattern
注释不支持您正在尝试执行的操作。它的regexp
属性不支持占位符,必须直接定义正则表达式。
如果您希望能够外部化模式,则必须实施自定义 ConstraintValidator
。
我尝试了一些方法:
1。 application.yml 文件
internationalchar:
regex:
expression: "^[\p{L}\p{M}\p{Nd}\°\' ]+$"
在 POJO 中使用 Class
@Pattern(regexp = "${internationalchar.regex.expression}", message = "FSTU_4108,Name")
private String name;
错误:索引附近的非法重复 0\r\n${internationalchar.regex.expression}\r\n^"
2.Also 尝试使用转义字符
@Pattern(regexp = "//$//{internationalchar.regex.expression//}", message = "FSTU_4108,Name")
3.Using @Value 属性 @Value("${ficoInternationalChar.regex.expression}") 无法读取我的正则表达式(给出无效名称的错误)
4.
@Value("${internationalchar.regex.expression}")
private String environment;
@Pattern(regexp = environment, message = "FSTU_4108,Name")
private String name;
Attribute value must be constant 错误(尝试将环境设为最终但同样的错误)
注意:我是 java 初学者
很遗憾,@Pattern
注释不支持您正在尝试执行的操作。它的regexp
属性不支持占位符,必须直接定义正则表达式。
如果您希望能够外部化模式,则必须实施自定义 ConstraintValidator
。