Struts 2.0.9中 客户端验证的显示效果是和服务器验证一样,如果希望用alert方式来显示,swimren 在其一篇帖子中已有提到怎么修改可以实现。 详细请参考 http://www.iteye.com/topic/82991 不过在2.0.9这个版本中修改的话更简单些 只需要改一个文件 form-close-validate.ftl 并将其放在 \classes\template\xhtml\ 就可以了 对form-close-validate.ftl 的修改和swimren稍有些不同 修正了int double 和 email类型时 输入为空的时候也验证通过的问题。 详细请看附件
Struts 2.0.9中客户端验证支持的类型有限,date 类型就不支持。 我尝试着在form-close-validate.ftl添加代码来支持date类型,但获取不到min和max的值。 代码如下:
- <#elseif validator.validatorType = "date">
- if (field.value != null) {
- var value = Date.parse(field.value.replace('-','/') );
- var datevalue= new Date(value );
- if(isNaN(datevalue))
- {
- addError(field, error);
- errors = true;
- }
- if (<#if validator.min?exists>value <= Date.parse(${validator.min}.replace('-','/')) <#else>false </#if> ||
- <#if validator.max?exists>value >= Date.parse(${validator.max}.replace('-','/')) <#else>false </#if> ){
- addError(field, error);
- errors = true;
- }
- }
- if>
但执行的时候, 报validator.min没有定义。 这样行不通 ,又在源码中找相关的文件经行修改,但没找到。
有人有方法解决此问题么? 讨论一下啊
附:支持的客户端验证类型有:
required validator
requiredstring validator
stringlength validator
regex validator
email validator
url validator
int validator
double validator