<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頁面沒有傳入任何值,郁悶了~
    新手,多指點指點,謝謝~

    沒有所謂的命運,只有不同的選擇!
    主站蜘蛛池模板: 成人免费区一区二区三区| 亚洲国产美女在线观看| 一级毛片aa高清免费观看| 免费一级做a爰片性色毛片| 美女被暴羞羞免费视频| 亚洲国产婷婷综合在线精品| 中文字幕亚洲激情| 国产免费人成视频尤勿视频 | 久久久久久噜噜精品免费直播| 亚洲伊人成无码综合网| av永久免费网站在线观看| 亚洲人成电影福利在线播放 | 无人视频在线观看免费播放影院 | 国产免费的野战视频| 亚洲人成片在线观看| 精品久久久久久久免费人妻| 美女被艹免费视频| 亚洲人成网7777777国产| 1000部羞羞禁止免费观看视频| 91亚洲国产成人久久精品| 免费看AV毛片一区二区三区| 日本中文字幕免费看| 亚洲AV无码乱码国产麻豆穿越 | 立即播放免费毛片一级| 国产成人精品曰本亚洲79ren| 香港a毛片免费观看| 亚洲中文字幕无码av| 亚洲夜夜欢A∨一区二区三区| 91青青青国产在观免费影视 | 三年片免费高清版| 亚洲精品视频观看| 四虎亚洲国产成人久久精品| 久久成人免费电影| 亚洲成在人线在线播放无码| 国产V亚洲V天堂A无码| 好爽…又高潮了免费毛片| 中文字幕免费播放| 亚洲综合成人婷婷五月网址| 黑人大战亚洲人精品一区| 免费A级毛片无码免费视| 99在线视频免费观看|