Iam使用Hibernate驗證器驗證數據。我使用@Range屬性來驗證特定的字段。將動態數據設置爲@Range註釋的最小和最大屬性 - 休眠驗證器
@Range(min=0,max=100)
private String amount;
這很好,但我可以動態地改變最小值和最大值而不是硬編碼。我的意思是我可以做類似於:
@Range(min=${},max=${})
private String amount;
Iam使用Hibernate驗證器驗證數據。我使用@Range屬性來驗證特定的字段。將動態數據設置爲@Range註釋的最小和最大屬性 - 休眠驗證器
@Range(min=0,max=100)
private String amount;
這很好,但我可以動態地改變最小值和最大值而不是硬編碼。我的意思是我可以做類似於:
@Range(min=${},max=${})
private String amount;
Java中的註釋使用常量作爲參數。你不能動態改變它們。
編譯常量只能是原語和字符串。請檢查此link。
如果你想使它可配置,你可以聲明它們爲靜態final。
例如:
private static final int MIN_RANGE = 1;
private static final int MAX_RANGE = 100;
,然後在註釋分配。
@Range(min=MIN_RANGE,max=MAX_RANGE)
private String amount;
註釋屬性的值必須是常量表達式。
如果你在你的項目中使用Spring,你可以做這樣的事情:
屬性文件:
min_range = 0
max_range = 100
spring.xml:
<context:component-scan
base-package="com.test.config" />
<context:annotation-config />
<bean id="appConfigProperties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="location" value="classpath:appconfig.properties" />
</bean>
的java:
@Range(min=${min_range},max=${max_range})
private String amount;
這不是動態變化,但我想你試圖找到像這樣的東西
min =「$ {min_range}」,max =「$ {max_range}」 – prsmax