5.    在这里我加一个struts2的一个上传验证的问题

上传时我们可以这样来验证
//判断上传的文件是否合要求
public boolean filterType(String []types){
//这里用的是 上传的file对象的方法length
//上传的类型都是二进制,所以我们就自己找后缀名
String fileType = uploadUtil.getExt();
for(String type : types){
if(! type.equals(fileType)){
return false;
}
}
System.out.println("go to to to");
return true;
} //判断文件的大小
public boolean filterLength(long length){
//length 就以字节为单位的 1024*1024*3 3M
//这里用的是 上传的file对象的方法length
if(uploadUtil.getUpload().length() > length){
System.out.println("wen jian 太大");
return false;
} //得到扩展名
public String getExt(){
return getUploadFileName().substring(getUploadFileName().lastIndexOf(".") + 1);
} 在action中重写这个方法,这个方法会在调用action逻辑方法时调用。
public void validate() {
System.out.println("kai shi validate");
// TODO Auto-generated method stub
String[] s = new String[3];
s[0]="gif";
s[1]="jpg";
s[2]="png";
if(filterType(s) && filterLength(1024*1024*3)){
System.out.println("ok");
}else{
System.out.println("err err");
//如果验证错误,就可以用addFieldError来传递错误的信息
//用了这个方法struts2就会自动的跳到struts.xml中配置的input对应的路径的页面,在该页面可以用<s:fieldError/>来接收信息。
addFieldError("error", "you wen ti");
}
} 我在做这个上传时还出现了一个很经典的问题
The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag
这个问题是你的web.xml中配置的sturts只过滤了.action,
可以改成
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 但是这样不是很好,因为这样所有的请求都要经过action.这样不好。
可以这样改
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

最新文章

  1. EXD_BAD_ACCEEE
  2. Java Socket长连接示例代码
  3. dex分包变形记
  4. AWS re:Invent 2014回顾
  5. PHP 之 FastCGI 与 mod_php 详解
  6. Kafka Quick Start
  7. 39一个可以让你受益HTML5课程
  8. WNMP(Windows + Nginx + PHP + MySQL) 安装
  9. Python(2)深入Python函数定义
  10. subline 建立服务器
  11. 第三章 document对象及数组
  12. es6学习日记4
  13. [原创]Javascript模拟“类”的综合实现方式以及部分细节【截至ES6】
  14. 课外知识----easy BCD
  15. Matlab如何连接Oracle数据库及基本操作
  16. 记录:TensorFlow 中的 padding 方式
  17. 安装windows 2003iso 步骤
  18. 数据中有NA存在,处理办法
  19. HDUOJ------Lovekey
  20. csu 1798(树上最远点对,线段树+lca)

热门文章

  1. [转] OpenStack Kilo 更新日志
  2. 【转载】阎焱:90后创业是扯淡 大量O2O和P2P公司濒临倒闭
  3. Spring学习之第一个AOP程序
  4. 【HTML】嵌入图像
  5. HttpURLConnection用法详解
  6. [No000033]码农网-如何锻炼出最牛程序员的编码套路
  7. 关于高负载服务器Kernel的TCP参数优化
  8. css3 box-sizing属性
  9. Windows Phone App Studio 无码开发手机应用
  10. [LINK]Scribe