騷包路技術菜
嗯哼
posts - 89, comments - 241, trackbacks - 0, articles - 1
::
首頁
:: ::
聯系
::
聚合
::
管理
Struts2文件上傳以及空指針異常解決
Posted on 2009-09-27 08:54
saobaolu
閱讀(4346)
評論(2)
編輯
收藏
所屬分類:
java基礎與算法
uploadFile.java
1
package
action;
2
3
import
java.io.File;
4
import
java.text.DateFormat;
5
import
java.text.SimpleDateFormat;
6
import
java.util.Date;
7
import
java.util.Random;
8
9
import
javax.servlet.ServletContext;
10
11
import
org.apache.commons.io.FileUtils;
12
import
org.apache.struts2.util.ServletContextAware;
13
14
import
com.opensymphony.xwork2.ActionSupport;
15
16
public
class
uploadFile
extends
ActionSupport
implements
ServletContextAware
{
17
18
private
static
final
long
serialVersionUID
=
-
5016873153441103539L
;
19
20
private
File doc;
21
private
String fileName;
22
private
String contentType;
23
24
private
ServletContext context;
25
26
public
void
setDoc(File file)
{
27
this
.doc
=
file;
28
}
29
30
public
void
setDocFileName(String fileName)
{
31
this
.fileName
=
fileName;
32
}
33
34
public
void
setDocContentType(String contentType)
{
35
this
.contentType
=
contentType;
36
}
37
38
public
void
setServletContext(ServletContext context)
{
39
this
.context
=
context;
40
}
41
42
public
String execute()
throws
Exception
{
43
String targetDirectory
=
context.getRealPath(
"
/upload
"
);
44
String targetFileName
=
generateFileName(fileName);
45
File target
=
new
File(targetDirectory, targetFileName);
46
47
FileUtils.copyFile(doc, target);
48
49
return
SUCCESS;
50
}
51
52
private
String generateFileName(String fileName)
{
53
DateFormat format
=
new
SimpleDateFormat(
"
yyMMddHHmmss
"
);
54
String formatDate
=
format.format(
new
Date());
55
56
int
random
=
new
Random().nextInt(
10000
);
57
58
int
position
=
fileName.lastIndexOf(
"
.
"
);
59
String extension
=
fileName.substring(position);
60
61
return
formatDate
+
random
+
extension;
62
}
63
}
64
struts.xml
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE struts PUBLIC
3
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
5
<
struts
>
6
<
package
name
="uploadFile"
extends
="struts-default"
>
7
<
action
name
="uploadFile"
class
="action.uploadFile"
>
8
<
result
>
/jsp/up.jsp
</
result
>
9
</
action
>
10
</
package
>
11
</
struts
>
web.xml(Struts2的xml,非上傳的xml)
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<
web-app
version
="2.4"
3
xmlns
="http://java.sun.com/xml/ns/j2ee"
4
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
5
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee
6
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
7
<
filter
>
8
<
filter-name
>
struts2
</
filter-name
>
9
<
filter-class
>
org.apache.struts2.dispatcher.FilterDispatcher
</
filter-class
>
10
</
filter
>
11
<
filter-mapping
>
12
<
filter-name
>
struts2
</
filter-name
>
13
<
url-pattern
>
/*
</
url-pattern
>
14
</
filter-mapping
>
15
</
web-app
>
up.jsp(上傳成功頁面)
1
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
2
<%
@ taglib prefix
=
"
s
"
uri
=
"
/struts-tags
"
%>
3
<%
4
String
path
=
request.getContextPath();
5
String
basePath
=
request.getScheme()
+
"
://
"
+
request.getServerName()
+
"
:
"
+
request.getServerPort()
+
path
+
"
/
"
;
6
%>
7
8
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
9
<
html
>
10
<
head
>
11
<
base
href
="<%=basePath%>"
>
12
13
<
title
>
My JSP 'up.jsp' starting page
</
title
>
14
15
<
meta
http-equiv
="pragma"
content
="no-cache"
>
16
<
meta
http-equiv
="cache-control"
content
="no-cache"
>
17
<
meta
http-equiv
="expires"
content
="0"
>
18
<
meta
http-equiv
="keywords"
content
="keyword1,keyword2,keyword3"
>
19
<
meta
http-equiv
="description"
content
="This is my page"
>
20
<!--
21
<link rel="stylesheet" type="text/css" href="styles.css">
22
-->
23
24
</
head
>
25
26
<
body
>
27
<
s:property
value
="contentType"
/><
br
/>
28
<
s:property
value
="dir"
/><
br
/>
29
</
body
>
30
</
html
>
31
上傳頁面:
1
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
2
<%
@ taglib prefix
=
"
s
"
uri
=
"
/struts-tags
"
%>
3
<%
4
String
path
=
request.getContextPath();
5
String
basePath
=
request.getScheme()
+
"
://
"
+
request.getServerName()
+
"
:
"
+
request.getServerPort()
+
path
+
"
/
"
;
6
%>
7
8
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
9
<
html
>
10
<
head
>
11
<
base
href
="<%=basePath%>"
>
12
13
<
title
>
最新產品發布頁
</
title
>
14
15
<
meta
http-equiv
="pragma"
content
="no-cache"
>
16
<
meta
http-equiv
="cache-control"
content
="no-cache"
>
17
<
meta
http-equiv
="expires"
content
="0"
>
18
<
meta
http-equiv
="keywords"
content
="keyword1,keyword2,keyword3"
>
19
<
meta
http-equiv
="description"
content
="This is my page"
>
20
<!--
21
<link rel="stylesheet" type="text/css" href="styles.css">
22
-->
23
24
</
head
>
25
26
<
body
>
27
<
s:form
action
="uploadFile"
method
="post"
enctype
="multipart/form-data"
>
28
<
s:file
name
= "doc"
label
="上傳視頻"
/>
29
<
s:submit
value
="上傳"
/>
30
</
s:form
>
31
</
body
>
32
</
html
>
33
很容易就會報錯,空指針異常。
原因在于上傳頁面<s:file name="
這里面的值與action的值不匹配
" />
可是我上傳成功之后,up.jsp頁面沒有傳入任何值,郁悶了~
新手,多指點指點,謝謝~
沒有所謂的命運,只有不同的選擇!
Powered by:
BlogJava
Copyright © saobaolu
公告
留言簿
給我留言
查看公開留言
查看私人留言
我參與的團隊
南工技術圈(0/0)
隨筆分類
DataBase(5)
javaweb(7)
java基礎與算法(38)
Linux操作系統(10)
前端(12)
微信公共平臺開發(1)
隨筆檔案
2013年8月 (1)
2010年7月 (1)
2010年6月 (6)
2010年3月 (1)
2010年1月 (5)
2009年12月 (3)
2009年11月 (5)
2009年10月 (4)
2009年9月 (12)
2009年8月 (1)
2009年7月 (4)
2009年6月 (4)
2009年5月 (7)
2009年4月 (7)
2009年3月 (16)
2009年2月 (2)
2008年10月 (5)
2008年9月 (2)
2008年8月 (3)
java
Java入門
java初學者視頻
專輯:J2EE入門教程-新浪播客
SQL語句教程
W3Cschool
墨白
My other site!
穿越大學的苦行僧
搜索
積分與排名
積分 - 91767
排名 - 631
最新評論
1.?re: 南陽理工學院軟件學院Java開發團隊
@賀 怎么啦,保存不到數據庫數據?自己Debug 跟一下,問題應該不大。
--張志杰
2.?re: 南陽理工學院軟件學院Java開發團隊
@賀
幫忙看下程序哪出錯了
--賀
3.?re: 開發一個學生管理系統,將信息導入數據庫
評論內容較長,點擊標題查看
--賀
4.?re: MySQL5.0驅動下載
的
--收到
5.?re: MySQL亂碼實戰解決ERROR 1366 (HY000): Incorrect string value: '
浮云,,都是浮云,,,,到my.ini改下mysqld編碼就好了
--張三
主站蜘蛛池模板:
7777久久亚洲中文字幕蜜桃
|
国产免费私拍一区二区三区
|
亚洲va久久久噜噜噜久久狠狠
|
深夜特黄a级毛片免费播放
|
久久精品电影免费动漫
|
亚洲无码高清在线观看
|
猫咪免费观看人成网站在线
|
免费国产a国产片高清
|
美女露100%胸无遮挡免费观看
|
免费看大美女大黄大色
|
免费一级毛片在播放视频
|
香港特级三A毛片免费观看
|
亚洲国产成人精品女人久久久
|
日本高清不卡中文字幕免费
|
国产成人毛片亚洲精品
|
色www永久免费
|
亚洲资源在线视频
|
一二三四视频在线观看中文版免费
|
亚洲中文字幕在线观看
|
美女在线视频观看影院免费天天看
|
亚洲精品午夜无码专区
|
最近中文字幕高清免费中文字幕mv
|
亚洲av无码一区二区三区天堂古代
|
成人人免费夜夜视频观看
|
色爽黄1000部免费软件下载
|
亚洲色无码一区二区三区
|
最近中文字幕免费2019
|
综合偷自拍亚洲乱中文字幕
|
亚洲色精品88色婷婷七月丁香
|
久久久久久国产精品免费免费男同
|
亚洲人成网站在线观看播放动漫
|
国产成人免费福利网站
|
成人爽a毛片免费
|
亚洲伊人久久大香线蕉结合
|
免费在线观看黄网站
|
91精品免费不卡在线观看
|
99亚洲男女激情在线观看
|
亚洲国产精品无码久久久秋霞2
|
无码精品A∨在线观看免费
|
最好2018中文免费视频
|
99久久精品国产亚洲
|