-
struts2上传文件的时候,action里面获取上传文件的文件名和类型的原理是什么?5
在jsp页面代码:
<s:file name="upload" label="上传的文件" />
action中,声明代码:
private File upload; private String uploadContentType; // 文件的内容类型 private String uploadFileName; // 上传文件名
这里有个疑问, 文件名和文件类型是如何获取的?
大家科普一下吧
2012年9月30日 11:02
1个答案 按时间排序 按投票排序
-
采纳的答案
约定,在struts2内部的的FileUploadInterceptor完成的
String[] fileName = multiWrapper.getFileNames(inputName);//得到请求的所有文件名
if (isNonEmpty(fileName)) {
// get a File object for the uploaded File
File[] files = multiWrapper.getFiles(inputName);
if (files != null && files.length > 0) {
List<File> acceptedFiles = new ArrayList<File>(files.length);
List<String> acceptedContentTypes = new ArrayList<String>(files.length);
List<String> acceptedFileNames = new ArrayList<String>(files.length);
String contentTypeName = inputName + "ContentType";//默认就是input名称+ContentType
String fileNameName = inputName + "FileName";//默认就是input名称+FileName
for (int index = 0; index < files.length; index++) {
if (acceptFile(action, files[index], fileName[index], contentType[index], inputName, validation, ac.getLocale())) {
acceptedFiles.add(files[index]);
acceptedContentTypes.add(contentType[index]);
acceptedFileNames.add(fileName[index]);
}
}
if (!acceptedFiles.isEmpty()) {
Map<String, Object> params = ac.getParameters();//添加到parameters中 这样就可以通过OGNL注入到action了
params.put(inputName, acceptedFiles.toArray(new File[acceptedFiles.size()]));
params.put(contentTypeName, acceptedContentTypes.toArray(new String[acceptedContentTypes.size()]));
params.put(fileNameName, acceptedFileNames.toArray(new String[acceptedFileNames.size()]));
}
}2012年9月30日 11:19
相关推荐
// 上传文件内容类型集合 private List<String> fileContentType; public List<File> getFile() { return file; } public void setFile(List<File> file) { this.file = file; } ...
Struts2属性文件详解 struts.configuration 该属性指定加载Struts 2...该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以应该明白为什么Struts 2框架默认加载struts.xml文件了.
3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....
struts2文件上传,与xml校验 struts2文件校验可通过xml配对action的名称去校验属性的值。例如UploadAction.java中有一个book的属性。那么我可以定义一个UploadAction-validation.xml去校验这个book属性的内容。 xml的...
Struts2 下载文件不同浏览器兼容问题,实现不同浏览器下载文件名是action名的问题
该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 struts.objectFactory 该属性指定Struts 2中的action由哪个容器...
poi+struts的excel导入action,加入包,配置文件就可以用
4个xml文件(applicationContext-dao.xml(dao注入配置),applicationContext-service.xml(service注入配置),action-servlet.xml(action注入配置),struts-{自定义的存放包名}.xml(struts2的action配置文件)) ...
/**//*截取上传文件的后缀名,此时得到了文件的类型*/ type = type.substring(i+1); } // 限制上传类型为jpg,txt,rar; if (!type.equals("jpg") && !type.equals("txt")&& !type.equals("bmp")) {//当上传的...
WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。 本文后面的章节将从数据持久层->业务层->Web层的...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...
同时也实现了文件上传(基于struts2的文件上传功能)。 4、代码下载,下载功能会判断用户是否下载过该代码,若下载过则不扣积分。下载功能也是基于struts2的下载模块实现的。 5、代码评论,该功能是我仿照qq空间评论...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...
首先我说下我做的这个插件:用于springMVC,由于springMVC没有像struts1 2 那样,有个专门的跳转路径的配置文件,导致springMVC不能直观方便的看到方法(Action)和路径对应的匹配,所以我这个插件会把eclipse里工作...
框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat model,dao,manager,struts+struts2 action类,可以生成jsp...