We are using spring 3 and struts 2. We use spring @value annotation to get values from property files. We want to get validation rules from property files instead of hard-coding them in action. Here is sample property system.properties transfer.account.min.amount=10 Here is the action: publicclassTransferToAccountimplementsPreparable{@Value("${transfer.account.min.amount}")publicStringminAmount;//...........execute and other methods omitted@IntRangeFieldValidator(type =ValidatorType.FIELD,min ="${minAmount}",key ="validate.int.min")publicvoidsetAmount(Integeramount){this.amount =amount;} The minAmount is populated correctly by value 10, but the validation is not working. ________________________________ To see if parameters are passed correctly, I make a test as below. Assume we want to get a key from spring managed property file ( This is just a test ;) ) system.properties transfer.account.min.amount.key=validate.int.min The resource bundel is: validate.int.min = This field must be more than ${min} ...and make this change @IntRangeFieldValidator(type =ValidatorType.FIELD,min ="${minAmount}",key ="${transfer.account.min.amount.key}") Now when an error happens the validation message shows validate.int.min, instead of fetching this value from resource bundle! Of course, when you run below code: @IntRangeFieldValidator(type =ValidatorType.FIELD,min ="${minAmount}",key ="validate.int.min") The error message is fetched resource bundle correctly! ________________________________ If I can use annotation in this way, please let me know what is my mistake! If I can not use annotations like this, please let me know what is the best way to avoid hard coding the validaiton rolls in actions.
~Regards, ~~Alireza Fattahi