騷包路技術菜
嗯哼
posts - 89, comments - 241, trackbacks - 0, articles - 1
::
首頁
:: ::
聯系
::
聚合
::
管理
Struts2文件上傳以及空指針異常解決
Posted on 2009-09-27 08:54
saobaolu
閱讀(4339)
評論(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!
穿越大學的苦行僧
搜索
積分與排名
積分 - 91104
排名 - 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編碼就好了
--張三
主站蜘蛛池模板:
成人免费区一区二区三区
|
亚洲国产美女在线观看
|
一级毛片aa高清免费观看
|
免费一级做a爰片性色毛片
|
美女被暴羞羞免费视频
|
亚洲国产婷婷综合在线精品
|
中文字幕亚洲激情
|
国产免费人成视频尤勿视频
|
久久久久久噜噜精品免费直播
|
亚洲伊人成无码综合网
|
av永久免费网站在线观看
|
亚洲人成电影福利在线播放
|
无人视频在线观看免费播放影院
|
国产免费的野战视频
|
亚洲人成片在线观看
|
精品久久久久久久免费人妻
|
美女被艹免费视频
|
亚洲人成网7777777国产
|
1000部羞羞禁止免费观看视频
|
91亚洲国产成人久久精品
|
免费看AV毛片一区二区三区
|
日本中文字幕免费看
|
亚洲AV无码乱码国产麻豆穿越
|
立即播放免费毛片一级
|
国产成人精品曰本亚洲79ren
|
香港a毛片免费观看
|
亚洲中文字幕无码av
|
亚洲夜夜欢A∨一区二区三区
|
91青青青国产在观免费影视
|
三年片免费高清版
|
亚洲精品视频观看
|
四虎亚洲国产成人久久精品
|
久久成人免费电影
|
亚洲成在人线在线播放无码
|
国产V亚洲V天堂A无码
|
好爽…又高潮了免费毛片
|
中文字幕免费播放
|
亚洲综合成人婷婷五月网址
|
黑人大战亚洲人精品一区
|
免费A级毛片无码免费视
|
99在线视频免费观看
|