java.lang.NullPointerException
java.io.File.<init>(File.java:262)
com.yiyi.action.UploadAction.upload(UploadAction.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:314)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
解决方案 »
- Status 2报错:Could not find action or result,请帮忙
- 如何把struts2标签中的submit value写成活的
- 求一页面效果
- J2ee新人请教职业问题
- 关于eclipse+lomboz+jboss开发ejb的问题
- intle和moto的手机开发大赛,小弟要组队参赛,有意向的,顶一顶啊!快!!!!!!!!
- JAVA应用问题(二)
- 提问关于CMP2.0的Entity Bean和Oracle8.0.5的Lang字段问题! 很急!!!
- 访问SQL server与Oracle数据库的,JAVA包,那里有下载?急!!高分相送!!!
- @Scheduled 参数问题
- 删除购物车一项商品
- 如何更好的学习Extjs
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport{ /**
*
*/
private static final long serialVersionUID = -8936956951350346958L;
private File picture;
@SuppressWarnings("unused")
private String pictureContentType;
private String pictureFileName;
public String execute(){
return "input";
}
public String upload() throws Exception{
File saved = new File(ServletActionContext.getServletContext().getRealPath("upload"),pictureFileName);
InputStream ins = null;
OutputStream ous = null;
try {
saved.getParentFile().mkdirs();//确保文件夹upload存在
ins = new FileInputStream(picture);
ous = new FileOutputStream(saved);
byte[] b = new byte[1024]; // 字节缓存
int len = 0 ;
while((len = ins.read(b))!= -1){ //循环读入,直至结束
ous.write(b,0,len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(ins != null ){
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ous != null){
try {
ous.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "list";
}}
<package name="test" namespace="/test" extends="struts-default">
<action name="upload" class="com.yiyi.action.UploadAction" method="upload">
<result name="list">/upload_list.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
upload.jsp <s:form action="test/upload" enctype="multipart/form-data" method="post">
<s:label value="上传测试"></s:label>
<s:file name="picture" label="文件:"></s:file>
<s:submit value="上传" method="upload"></s:submit>
</s:form>
private File picture;
@SuppressWarnings("unused")
private String pictureContentType;
private String pictureFileName;这些有get/set方法没?