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)
这就是一个上传文件的标签,就和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)
解决方案 »
- 怎么判断返回值isEmpty()
- hibernate与struts结合问题
- 不知道用STRUTS的开发人员有没有碰到这样的问题 请教高手?
- 请问jsp中怎么判断记录集中无记录?
- 如何把登陆帐号加密后的密文以字符串的方式存储到数据库中,然后在从数据库中提取进行解密??
- 救命啊,大家帮帮忙啊
- 如何对一个字符串进行MD5加密(总题解决马上结账)?
- 帮我看看那里错了,谢了
- 关于JSP:forward中的中文问题
- 请问 java.lang.Float x= new java.lang.Float(request.getParameter("x"))的表达正确吗?
- 哪位仁兄能提供log4j的试题及答案吗?
- jxl写excel关于小数的问题
file可以是空,action里你不用就是了
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 上传试下,会不会有问题
可以用webwork.multipart.parser=jakarta 上传试下,会不会有问题?什么意思?
这段代码应该放哪?
webwork.multipart.parser用来配置用何种方式上传文件,目前有cos,jakarta,pell 这三种,具体区别你可以自己搜搜看。
看你的问题,把它配置成jakarta就可以解决了