背景。使用spring进行依赖注入,并在tomcat服务器上运行struts2。
在进行bean验证时,我喜欢采用两层方法。
问题:
跟踪两组验证标准会有点麻烦...错误信息很容易跟踪,因为我可以将它们粘贴到messages.properties文件中并对我的两个进行消息查找bean和JSP页面。真正的问题是数字。
例如,假设我有一个带有字符串变量注释的清单。最小尺寸为10,最大尺寸为2000。在接下来的三个月里,我发现2000年并没有削减它,我需要将尺寸限制增加到最大值4000。我现在有两个地方可以改变这个数字。
带注释的Java Bean验证:
@Entity
public class Checklist{
@Size(min = 10, max = 2000, message = "{Checklist.size}")
private String notes;
}
jQuery表单验证:
$("#someForm").validate({
rules:{
'checklist.notes':{
minlength:10,
maxlength:2000
}
}
});
我是否可以通过某种方式重复使用该号码,这与我可以重复使用该消息的方式相同?
答案 0 :(得分:0)
使用通用类或接口中的常量。
使用Struts <s:property/>
标记将其注入JSP jQuery脚本。
这样,当您更改常量值时,所有Java类和所有JSP页面都将自动读取新值,而无需更改代码或替换某些内容。
基类,接口或包含常量的任何内容
public static final int MIN_LENGHT = 20;
public static final int MAX_LENGHT = 4000;
Action(使用常量实现/扩展上面的类)
@Entity
public class Checklist{
@Size(min = MIN_LENGHT, max = MAX_LENGHT, message = "{Checklist.size}")
private String notes;
}
JSP
$("#someForm").validate({
rules:{
'checklist.notes':{
minlength:<s:property value="@my.package.constantClass@MIN_LENGHT" />,
maxlength:<s:property value="@my.package.constantClass@MAX_LENGHT" />
}
}
});
请务必在struts.ognl.allowStaticMethodAccess
true
设为struts.xml