/**
*
*/
package tongji.sse.zxd.service.upload;import java.io.File;import javax.servlet.ServletContext;import org.apache.commons.io.FileUtils;
import org.apache.struts2.util.ServletContextAware;import com.opensymphony.xwork2.ActionSupport;public class StrutsFileUpload extends ActionSupport implements
ServletContextAware { private File upload;// 实际上传文件 private String uploadContentType; // 文件的内容类型 private String uploadFileName; // 上传文件名 private String fileCaption;// 上传文件时的备注 private ServletContext context; public String execute() throws Exception { try {
String targetDirectory = context.getRealPath("/upload");
String targetFileName = uploadFileName;
File target = new File(targetDirectory, targetFileName);
FileUtils.copyFile(upload, target);
setUploadFileName(target.getPath());//保存文件的存放路径
} catch (Exception e) { addActionError(e.getMessage()); return INPUT;
} return SUCCESS; } public String getFileCaption() {
return fileCaption;
} public void setFileCaption(String fileCaption) {
this.fileCaption = fileCaption;
} public File getUpload() {
return upload;
} public void setUpload(File upload) {
this.upload = upload;
} public String getUploadContentType() {
return uploadContentType;
} public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
} public String getUploadFileName() {
return uploadFileName;
} public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
} public void setServletContext(ServletContext context) {
this.context = context;
}}Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.il8n.encoding" value="GBK">constant</constant>
<package name="lee" extends="struts-default">
<action name="login" class="loginAction">
<result name="error">/index.jsp</result>
<result name="success">/index.jsp</result>
</action>
</package> <package name="tongji.sse.zxd.service.upload" namespace="/" extends="struts-default">
<action name="fileUpload" class="FileUploadAction">
<param name="savePath">/upload</param>
<result name="error">/index.jsp</result>
<result name="success">/index.jsp</result>
</action>
<action name="doUpload" class="StrutsFileUpload">
<result name="input">/upload.jsp</result>
<result>/upload_success.jsp</result> </action>
</package></struts> jsp
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>文件上传示例</title>
<link href="<s:url value="/css/main.css"/>" rel="stylesheet"
type="text/css" /> </head> <body> <s:actionerror />
<s:fielderror />
<s:form action="doUpload" method="POST" enctype="multipart/form-data">
<tr>
<td colspan="2">
<h1>
文件上传示例
</h1>
</td>
</tr> <s:file name="upload" label="上传的文件" />
<s:textfield name="fileCaption" label="备注" />
<s:submit value="上 传"/>
</s:form>
</body>
</html>为什么老报Unable to instantiate Action, StrutsFileUpload, defined for 'doUpload' in namespace '/'StrutsFileUpload
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:307)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)root causejava.lang.ClassNotFoundException: StrutsFileUpload
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:146)
com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:212)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:132)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
解决方案 »
- sql转hql请教,小妹不胜感激
- oracle里存的是number类型,java查询出来的对象属性是bigdecimal类型,该怎么解决?
- 学软件刚出来的孩子,有点迷茫
- 读取csv文件
- 急,急,急。itext生成PDF乱码问题,求解
- myEclipse 正常使用 但突然不能编译jsp网页 求高手帮解答
- jsp如何自动提交表单
- 一個簡單的struts問題!(愿給分)
- Jboss-tomcat调试servlet出错误?
- 如何将从JSP页面中取得的系统当前时间写入oracle数据库表中?
- Java 学习步骤-代码花园学习法
- 用jsp的response生成excel到客户端(wb.write(response.getOutputStream());--乱码 急!!!
java.lang.ClassNotFoundException: StrutsFileUpload
看样子是没有加上Jar包楼主自己找找这个类在哪个包里吧
在该namespace下找不到doupload,<package name="upload" extends="struts-default">
<action name="fileUpload" class="tongji.sse.zxd.service.upload.FileUploadAction">
<param name="savePath">/upload</param>
<result name="error">/index.jsp</result>
<result name="success">/index.jsp</result>
</action>
<action name="doUpload" class="tongji.sse.zxd.service.upload.StrutsFileUpload">
<result name="input">/upload.jsp</result>
<result>/upload_success.jsp</result></action>
</package>
class="FileUploadAction" 要不是大小写和你的bean没对应上.就是你的bean路径没写对