程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 使用struts,ibaits和JSTL開發簡便通用的文件上傳系統

使用struts,ibaits和JSTL開發簡便通用的文件上傳系統

編輯:關於JSP

使用struts,ibaits和JSTL開發簡便通用的文件上傳系統
文件上傳也是一個老生常談的問題了。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 (

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved