<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 89, comments - 241, trackbacks - 0, articles - 1
       :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

    Struts2文件上傳以及空指針異常解決

    Posted on 2009-09-27 08:54 saobaolu 閱讀(4339) 評論(2)  編輯  收藏 所屬分類: java基礎與算法

    uploadFile.java

     1package action;
     2
     3import java.io.File;    
     4import java.text.DateFormat;    
     5import java.text.SimpleDateFormat;    
     6import java.util.Date;    
     7import java.util.Random;    
     8   
     9import javax.servlet.ServletContext;    
    10   
    11import org.apache.commons.io.FileUtils;    
    12import org.apache.struts2.util.ServletContextAware;    
    13   
    14import com.opensymphony.xwork2.ActionSupport;    
    15   
    16public 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<%
     4String path = request.getContextPath();
     5String 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<%
     4String path = request.getContextPath();
     5String 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頁面沒有傳入任何值,郁悶了~
    新手,多指點指點,謝謝~

    沒有所謂的命運,只有不同的選擇!
    主站蜘蛛池模板: 成人午夜性A级毛片免费| 久久www免费人成精品香蕉| 三年片在线观看免费大全电影 | 中文字幕在线观看亚洲视频| 97在线视频免费公开观看| 亚洲av片劲爆在线观看| 免费无码作爱视频| 亚洲AV日韩AV鸥美在线观看| 外国成人网在线观看免费视频| 亚洲综合在线视频| 美女裸身网站免费看免费网站| 自拍日韩亚洲一区在线| 国产又长又粗又爽免费视频 | 亚洲性无码AV中文字幕| 免费的一级片网站| 特级毛片免费播放| 中文字幕亚洲不卡在线亚瑟| 182tv免费视频在线观看| 亚洲精品在线电影| 好男人看视频免费2019中文| jizzjizz亚洲日本少妇| 亚洲乱码国产一区网址| 中文字幕无码毛片免费看| 亚洲综合免费视频| 日韩免费福利视频| 99视频免费在线观看| 亚洲福利视频网站| 日本不卡高清中文字幕免费| www.xxxx.com日本免费| 久久久亚洲AV波多野结衣| 全免费一级毛片在线播放| 一个人看的www视频免费在线观看| 亚洲AV成人片色在线观看| 午夜男人一级毛片免费| 久久久久久毛片免费看 | 亚洲爆乳AAA无码专区| 久久久久亚洲爆乳少妇无| 在线观看免费av网站| 亚洲日韩在线中文字幕综合| 亚洲国产日韩在线视频| 免费看www视频|