使用struts,ibaits和JSTL开发简便通用的文件上传…
2008-02-23 09:53:43来源:互联网 阅读 ()
文件上传也是一个老生常谈的问题了。struts提供了很方便的文件上传组件,利用struts,很容易开发文件上传的系统。本文结合ibatis和JSTL开发一个简便而通用的文件上传系统。通过本文,你可以学到如何在struts里配置文件上传功能、struts1.1的动态form配置和使用、如果简单的使用ibatis,如果简单使用的JSTL。
首先我们要在struts-config里加上一句,来指定临时目录以及限制大小。
<controller maxFileSize="2M" tempDir="d:/temp"/>
然后只要在form中加上enctype="multipart/form-data" 就可以实现struts的上传了,十分简单吧?
下面我们在数据库中建立一张表。
create sequence Attachment_seq;
DROP TABLE ATTACHMENT;
create table Attachment
(
AttachID INT not null, --自动增长号 AttachFilename VARCHAR2(250) null, --文件名 AttachFileSize INT not null, --文件大小 AttachMimeType VARCHAR2(70) null, --文件类型 AttachDesc VARCHAR2(250) null, --说明 AttachCreationIP VARCHAR2(20) not null, --上传的IP AttachCreationDate TIMESTAMP not null, --创建时间 AttachModifiedDate TIMESTAMP not null, --文件保存路径 ATTACHFILEPATH VARCHAR2 (250) NOT NULL,
primary key (AttachID)
);
create or replace trigger Attach_trig_autoinc
before insert on Attachment
for each row
begin
if (:new.AttachID is null) then
select Attachment_seq.nextval into :new.AttachID from dual;
end if;
end;
字段的内容都很简单。
下面建立ibatis的SQL map文件。建立标准的insert、update、delete和find的SQL。相信看过前面系列文章的朋友对此已经很熟悉了。
<?XML version="1.0" encoding="UTF-8"?><!DOCTYPE sql-mapPUBLIC "-//iBATIS.com//DTD SQL Map 1.0//EN""http://www.ibatis.com/dtd/sql-map.dtd";><sql-map name="attachment"><!-- ============================================= mapped-statement insert ============================================= --><dynamic-mapped-statement name="insertattachmentDao" > insert into ATTACHMENT ( <dynamic prepend=""> <isPropertyAvailable prepend="," property="ATTACHID" > <isNotNull prepend="" property="ATTACHID" > ATTACHID </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHFILENAME" > <isNotNull prepend="" property="ATTACHFILENAME" > ATTACHFILENAME </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHFILEPATH" > <isNotNull prepend="" property="ATTACHFILEPATH" > ATTACHFILEPATH </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHFILESIZE" > <isNotNull prepend="" property="ATTACHFILESIZE" > ATTACHFILESIZE </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHMIMETYPE" > <isNotNull prepend="" property="ATTACHMIMETYPE" > ATTACHMIMETYPE </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHDESC" > <isNotNull prepend="" property="ATTACHDESC" > ATTACHDESC </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHCREATIONIP" > <isNotNull prepend="" property="ATTACHCREATIONIP" > ATTACHCREATIONIP </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHCREATIONDATE" > <isNotNull prepend="" property="ATTACHCREATIONDATE" > ATTACHCREATIONDATE </isNotNull> </isPropertyAvailable> <isPropertyAvailable prepend="," property="ATTACHMODIFIEDDATE" > <isNotNull prepend="" property="ATTACHMODIFIEDDATE" > ATTACHMODIFIEDDATE </isNotNull> </isPropertyAvailable> </dynamic> ) valueS (
<dynamic prepend="">
<isPropertyAvailable prepend="," property="ATTACHID" >
<isNotNull prepend="" property="ATTACHID" >
#ATTACHID#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHFILENAME" >
<isNotNull prepend="" property="ATTACHFILENAME" >
#ATTACHFILENAME#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHFILEPATH" >
<isNotNull prepend="" property="ATTACHFILEPATH" >
#ATTACHFILEPATH#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHFILESIZE" >
<isNotNull prepend="" property="ATTACHFILESIZE" >
#ATTACHFILESIZE#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHMIMETYPE" >
<isNotNull prepend="" property="ATTACHMIMETYPE" >
#ATTACHMIMETYPE#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHDESC" >
<isNotNull prepend="" property="ATTACHDESC" >
#ATTACHDESC#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHCREATIONIP" >
<isNotNull prepend="" property="ATTACHCREATIONIP" >
#ATTACHCREATIONIP#
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable prepend="," property="ATTACHCREATIONDATE" >
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- eclipse使用struts2找不到action方法或找不到action的错误记 2018-12-11
- 使用struts框架后的404错误 2018-12-03
- [J2EE从入门到精通第4讲]使用Struts开发Web应用程序(上) 2008-02-23
- 使用Struts的Token机制解决表单的重复提交 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash