- 浏览: 1273316 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
以前struts1使用的FormFile我不是很喜欢,这下好了,struts2现在直接拿到File了,OK,上代码!
需要上传的话要用到2个jar包:commons-io-x.jar和commons-fileupload-x.jar导入到lib后即可。
PS:我的工程名字叫TestStruts
1.写action:(BaseAction.java见第一章节)
FormFileStruts2.java:
package com.xuyi.action; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FormFileStruts2 extends BaseAction { public static final String ROOT = "upload\\"; private String username; //可以拿到file的流,使用tmp文件 private File image; //固定格式取file的真实文件名 private String imageFileName; //固定格式 private String imageContentType; private String msg; @Override public String execute() throws Exception { //配置src下面的struts.properties中加入struts.multipart.saveDir = /tmp //否则在上传文件时会出现Unable to find 'struts.multipart.saveDir' property setting的错误 String rootPath = getSession().getServletContext().getRealPath("/"); rootPath += ROOT; mkDirectory(rootPath); System.out.println(rootPath); try { upload(imageFileName, rootPath, image); } catch (RuntimeException e) { e.printStackTrace(); } msg = imageFileName; return SUCCESS; } /** * 根据路径创建一系列的目录 * * @param path */ boolean mkDirectory(String path) { File file = null; try { file = new File(path); if (!file.exists()) { return file.mkdirs(); } } catch (RuntimeException e) { e.printStackTrace(); } finally { file = null; } return false; } /** * 上传文件 * * @param savePath * 文件的保存路径 * @param uploadFile * 被上传的文件 * @return uploadFileName */ String upload(String uploadFileName, String savePath, File uploadFile) { FileOutputStream fos = null; FileInputStream fis = null; try { fos = new FileOutputStream(savePath + uploadFileName); fis = new FileInputStream(uploadFile); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } return uploadFileName; } public File getImage() { return image; } public void setImage(File image) { this.image = image; } public String getImageContentType() { return imageContentType; } public void setImageContentType(String imageContentType) { this.imageContentType = imageContentType; } public String getImageFileName() { return imageFileName; } public void setImageFileName(String imageFileName) { this.imageFileName = imageFileName; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getMsg() { return msg; } }
src下面新建一个struts.properties文件:
struts.multipart.saveDir = /tmp
2.配置struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!--package: name可以随便指定 namespace指定页面的目录(/为根目录) extends指定为 struts-default.xml文件(此文件包含默认的设置和定义) --> <package name="struts" namespace="/" extends="struts-default"> <!--action:name是访问action的名称 class是action的类 method是访问的action里的方法等同于struts1的method result是返回url--> <!-- struts2 file_upload begin --> <action name="formFileStruts2" class="com.xuyi.action.FormFileStruts2"> <result name="success">/pages/struts2_form_file_result.jsp</result> </action> <!-- struts2 file_upload end --> </package> </struts>
3.在WebRoot下建立pages文件夹中创建jsp
struts2_form_file_submit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Struts2-form上传示例-提交页</title> </head> <body> <form action="../formFileStruts2.action" method="post" enctype="multipart/form-data"> 用户名:<input type="text" name="username"><br/><br/> 图片:<input type="file" name="image"><br/><br/> <input type="submit" value="提交"> </form> </body> </html>
struts2_form_file_result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Struts2-form上传示例-结果页</title> </head> <body> ${username}上传图片${msg}成功! </body> </html>
4.访问:http://localhost:8080/TestStruts/pages/struts2_form_file_submit.jsp即可操作
发表评论
-
2017年Struts漏洞修复:版本从2.3.15.1升级到2.3.32
2017-03-24 15:10 2008如果你当前的项目使用了Struts2.3.5至 Strut ... -
struts2国际化信息
2011-12-06 15:44 11721.资源文件 中文文件messageResour ... -
struts2中action的重定向和转发的设置
2011-12-04 18:39 3049<?xml version="1.0&quo ... -
Myeclipse自动加入struts 2 Core Libraries导致antlr错误
2011-12-02 18:31 1042解决方法: 选择windows---preferences- ... -
struts2拦截器简单介绍
2011-10-18 22:10 1126一、理解Struts2拦截器 1. Struts2拦截器是在 ... -
struts1与struts2的区别
2011-10-18 21:52 974本文是转载,来源互联 ... -
struts2初学之form提交登录验证
2010-04-13 14:35 2547本篇介绍了struts2的最基本的form提交,并且使用了其P ... -
引用一下:struts1和struts2之间的区别
2010-04-13 12:05 1279Struts2与Struts1的对比 ... -
struts2初学之hello,struts2
2010-04-13 11:53 1207本篇应用了最基本的struts跳转程序来解释最基本的strut ... -
开始学习struts2
2010-04-13 10:01 1200说来惭愧,做了几年java技术基本都用的struts1,感觉跟 ...
相关推荐
Struts2提供了强大的文件上传支持,包括单个文件上传和批量文件上传。在这个精简源码案例中,我们将探讨这两种模式的实现方式。 首先,我们来了解一下Struts2单个文件上传的基本概念。在Struts2中,文件上传主要...
Struts2 是一个基于 MVC 设计模式的 Java Web 开发...对于初学者来说,理解这些内容有助于掌握 Struts2 框架和文件上传的基本操作。在实际开发中,可能还需要考虑更多细节,如多文件上传、文件重命名策略、错误处理等。
在Struts框架中,文件上传主要依赖于两个关键组件:`Commons FileUpload`库和`Struts2上传插件`。`Commons FileUpload`是Apache的一个子项目,负责处理HTTP请求中的多部分数据,而Struts2上传插件则整合了这一库,...
这个示例程序旨在帮助初学者理解如何在Struts2框架下实现文件上传。 首先,我们需要了解Struts2文件上传的核心概念和组件。在Struts2中,文件上传主要依赖于Apache Commons FileUpload库。这个库提供了处理HTTP多...
4. **JSP**:视图层主要由JSP页面构成,通过使用Struts标签库(Struts Tags)如<s:form>、等,可以轻松地创建动态页面,同时与ActionForm进行数据交互。 5. **Tiles**:在更复杂的项目中,Struts还可以结合Tiles...
Struts2和jQuery是两种非常流行的Java Web开发技术。Struts2是一个强大的MVC框架,用于构建企业级的Web应用程序,而jQuery则是一个...对于初学者来说,深入研究这个示例有助于掌握Struts2和jQuery在实际开发中的应用。
在Struts2中,视图通常由JSP页面完成,它们通过Struts2标签库(例如s:form, s:textfield等)与Action进行交互,显示和收集用户输入。控制器部分则通过Action类实现,Action类通常继承自Struts2提供的抽象类或实现...
在Struts2中实现图片上传功能是常见的需求,对于初学者和有经验的开发者来说,掌握这一技能都非常有价值。本篇文章将深入探讨如何在Struts2框架下实现图片上传功能。 首先,我们需要在Struts2的配置文件`struts.xml...
这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...
本项目案例“用Struts框架实现单文件上传功能”旨在帮助初学者掌握如何在Struts框架下处理文件上传的需求,这对于理解和实践Java Web开发中的常见操作非常有帮助。 首先,我们需要理解Struts框架的核心组件。Action...
这个项目提供的代码应该包含了这些步骤的完整实现,对于初学者来说,这是一个很好的学习资源,可以深入理解Struts2文件上传的工作原理和最佳实践。记得在实际应用中,一定要注意安全性和性能优化。
在Struts2中,文件上传功能是常见的需求之一,它允许用户通过网页上传各种类型的文件,例如图片、文档等。这个"struts2 上传 示例"是一个用于演示如何在Struts2框架下实现文件上传的示例项目。 首先,我们要了解...
该文档可能详细介绍了Struts2提供的各种内置标签库,如s:form、s:textfield、s:textarea、s:submit等,这些都是在JSP页面中用于构建动态用户界面的关键元素。标签库帮助开发者避免直接使用Java脚本和HTML,使代码更...
它还会介绍如何创建和配置Struts2应用,以及如何处理表单提交、文件上传、国际化等常见任务。 "struts2标签简单说明"则专门讨论Struts2提供的JSP标签库。这些标签简化了视图层的开发,使得开发者可以更高效地与模型...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括文件上传。在Web开发中,文件上传是一项常见的需求,比如用户可能需要上传图片、文档等。Struts2提供了简单易用的API来实现这一功能。下面我们将...
总结一下,这个"Struts2上传文件源码"示例主要涵盖了以下知识点: 1. Struts2的拦截器机制和`FileUploadInterceptor`。 2. 配置文件中启用文件上传拦截器。 3. 创建Action类处理文件上传,包括接收和处理上传文件。...
1. **Struts2上传功能**: - Struts2提供了内置的文件上传支持,这使得在Web应用中处理用户上传的文件变得非常方便。 - 在Action类中,我们需要定义一个类型为`List<CommonsFileUpload>`或`FileItem[]`的字段来...
在这个场景中,我们将关注如何使用Struts2框架结合FileUpload库来实现图片上传,并通过生成缩略图来优化用户体验。Struts2是一个流行的Java Web框架,它提供了一种结构化的方式来处理用户请求,而FileUpload则是处理...
这个压缩包包含了核心库(core)的jar文件和一个实现Struts2工程的步骤文档,这对于初学者或者开发者来说是极其有价值的资源。 1. **Struts2核心库(Core Jars)**: - Struts2的核心库提供了框架的基本功能,包括...
Struts2是一个非常流行...但对于初学者来说,它是了解Struts2文件上传机制的一个良好起点,可以帮助他们快速理解并部署到实际项目中。通过深入研究和扩展这个demo,可以掌握更多的高级特性,如多文件上传、异步上传等。