webwork的标签<ww:file name="'mcgXML'"/>为什么不能为空呢?
这就是一个上传文件的标签,就和struts的<input type="file">是一个意思,但是为什么webwork的这个标签如果我不选择文件就抛异常呢?异常如下:java.lang.NullPointerException
com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest.getFileNames(PellMultiPartRequest.java:68)
com.opensymphony.webwork.dispatcher.multipart.MultiPartRequestWrapper.getFileNames(MultiPartRequestWrapper.java:208)
com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:109)
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.beida.jbedu.common.filter.PermissionCheckFilter.doFilter(PermissionCheckFilter.java:305)
com.beida.jbedu.common.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:56)

解决方案 »

  1.   

    咋没人回复啊!!是没什么人用webwork么?
      

  2.   

    空指针了,先用<c:if判断一下吧
      

  3.   

    贴代码
    file可以是空,action里你不用就是了
      

  4.   

    看了下PellMultiPartRequest的源码:
        public String[] getFileNames(String fieldName) {        // TODO - not sure about this - is this the filename of the actual file or
            // TODO - the uploaded filename as provided by the browser?
            // TODO - Not sure what version of Pell this class uses as it doesn't seem to be the latest
            return new String[]{multi.getFile(fieldName).getName()};
        }其中multi = new ServletMultipartRequest(servletRequest, saveDir, maxSize);
    看一下方法getFile:
        public File getFile(String s)
        {
            String s1 = getFileSystemName(s);
            if(s1 != null && getFileSize(s) > 0L && fileOutPutDirectory != null)
                return new File(fileOutPutDirectory, s1);
            else
                return null;
        }
    看意思来说,当没有找到文件时,return null.也就是说很有可能你上传的文件是空的时候,会报这个错误。可以用webwork.multipart.parser=jakarta 上传试下,会不会有问题
      

  5.   


    可以用webwork.multipart.parser=jakarta 上传试下,会不会有问题?什么意思?
    这段代码应该放哪?
      

  6.   

    在webwork.properties文件里,这个文件在你的src根目录下。
    webwork.multipart.parser用来配置用何种方式上传文件,目前有cos,jakarta,pell 这三种,具体区别你可以自己搜搜看。
    看你的问题,把它配置成jakarta就可以解决了