如何配置struts2以通过@value从Spring获取验证规则
我们使用的是弹簧3和支柱2。我们使用spring@value注释从属性文件中获取值 我们希望从属性文件中获取验证规则,而不是对它们进行硬编码 这里是示例属性如何配置struts2以通过@value从Spring获取验证规则,spring,validation,struts2,Spring,Validation,Struts2,我们使用的是弹簧3和支柱2。我们使用spring@value注释从属性文件中获取值 我们希望从属性文件中获取验证规则,而不是对它们进行硬编码 这里是示例属性 system.properties transfer.account.min.amount=10 行动如下: public class TransferToAccount implements Preparable { @Value("${transfer.account.min.amount}") public String min
system.properties
transfer.account.min.amount=10
行动如下:
public class TransferToAccount implements Preparable {
@Value("${transfer.account.min.amount}") public String minAmount;
//...........execute and other methods omitted
@IntRangeFieldValidator(type = ValidatorType.FIELD, min = "${minAmount}", key = "validate.int.min")
public void setAmount(Integer amount) {
this.amount = amount;
}
minAmount已正确填充值10,但验证不起作用
为了查看参数是否正确传递,我进行了如下测试 假设我们想从spring托管属性文件中获取一个密钥(这只是一个测试;) 资源包是:
validate.int.min = This field must be more than ${min}
…我们将验证更改如下:
@IntRangeFieldValidator(type = ValidatorType.FIELD, min = "${minAmount}", key = "${transfer.account.min.amount.key}")
现在,当发生错误时,验证消息将显示validate.int.min
,而不是从资源包中获取此值
当然,当您运行以下代码时:
@IntRangeFieldValidator(type = ValidatorType.FIELD, min = "${minAmount}", key = "validate.int.min")
错误消息已正确获取资源包
如果我可以这样使用注释,请让我知道我的错误
如果我不能使用这样的注释,请告诉我避免在操作中硬编码validaiton rolls的最佳方法。您想验证spring填充到字段中的内容是什么?我想验证我的表单输入。而且,我希望spring框架从属性文件填充struts验证。表单有一个整数字段,该字段必须大于“10”。我想从spring@value中获取“10”,并将其传递给struts integer range validator。提交表单时,您可以使用struts验证框架对表单进行验证。您还可以在创建bean时使用Spring注释填充bean。但你不能同时做这两件事。
@IntRangeFieldValidator(type = ValidatorType.FIELD, min = "${minAmount}", key = "validate.int.min")