做好了文件上传,当然也要做下对上传文件的校验了,我也不太清楚struts2有没有现成的验证文件后缀的方法,然后就自己写了一个,也蛮简单的~~~
在struts.xml同级目录下的validators.xml中加上一行配置文件
<validator name="postfixcheck" class="com.validators.PostfixCheck"/>
然后看PostfixCheck类代码
package com.validators;
import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;
public class PostfixCheck extends FieldValidatorSupport{
String validPostfix;
public String getValidPostfix() {
return validPostfix;
}
public void setValidPostfix(String validPostfix) {
this.validPostfix = validPostfix;
}
public void validate(Object object) throws ValidationException {
String fieldName = getFieldName();
String fileName = (String)this.getFieldValue(fieldName, object);
System.out.println(fileName);
String postfix = getExtention(fileName);
boolean valid = checkValid(validPostfix, postfix);
if(valid != true)
{
addFieldError(fieldName, object);
}
}
private static String getExtention(String fileName)
{
int pos = fileName.lastIndexOf(".");
return fileName.substring(pos + 1);
}
private static boolean checkValid(String validPostfix, String post)
{
boolean valid = false;
for(int i = 0, j = 0, k = 0;i < validPostfix.length();i ++)
{
if(validPostfix.charAt(k) != ',' && k != validPostfix.length() - 1)
{
k++;
}
else
{
String postfix;
if(k == validPostfix.length() - 1)
{
postfix = validPostfix.substring(j, k + 1);
}
else
{
postfix = validPostfix.substring(j, k);
}
if(postfix.equals(post))
{
valid = true;
break;
}
else
{
j = k;
j ++;
k ++;
}
}
}
return valid;
}
public static void main(String[] args)
{
System.out.println(checkValid("jpg,gif,jpfg,jpeg", "exe"));
}
}
最后当然是添加相应的验证文件了,依然是 Action名-validation.xml的格式
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="fileName">
<field-validator type="postfixcheck">
<param name="validPostfix">wma,mp3</param>
<message>文件格式错误</message>
</field-validator>
</field>
</validators>
就这么简单,应该蛮好懂的~~~
分享到:
相关推荐
struts2的验证框架的示例代码,快速学习和使用struts2验证框架
适合初学者 struts2验证框架简单示例
struts2 验证框架,彻底简化判断页面传递过来的参数,必学内容
struts2验证框架的一些属性和框架验证的语法
struts7验证框架 struts7验证框架 我们学习时候用的 还是很全面 的
struts2 验证框架实例 掩饰了整个验证的过程 并讲解了一些网上没有说过的可能会遇到的错误
Struts2验证框架的配置及validation.xml常用的验证规则
Struts2 验证框架 validation.xml 常用的验证规则
这个绝对值得信赖 不会验证框架的赶紧来参与呵呵
基于struts2 框架的文 件上传 copy 模式 字节流上传 字符流上传
用户名、密码、年龄、电话号、email、日期验证、合法链接 的验证例子。
[浪曦原创]Struts系列 第6讲 Struts的验证框架Validate使用续二(zk001)
Struts1.x的验证框架示例 Struts1的验证框架并不常用,提供一个示例仅做参考
Struts Validator验证框架详细讲解.txt
Struts的验证框架Validate使用[2]
struts2最全验证框架...Struts2Validator Struts2 验证框架 Updated Jun 18, 2010 by cm2...@gmail.com Action 配置中一定要设置 input 返回页面 添加验证只要创建验证的...
struts1.2 验证框架示例 详细的写明了每一步骤