Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置struts2以通过@value从Spring获取验证规则_Spring_Validation_Struts2 - Fatal编程技术网

如何配置struts2以通过@value从Spring获取验证规则

如何配置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

我们使用的是弹簧3和支柱2。我们使用spring@value注释从属性文件中获取值

我们希望从属性文件中获取验证规则,而不是对它们进行硬编码

这里是示例属性

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")