当前位置:编程学习 > JAVA >>

小弟新写的文件上传 求大神解答

以下都是错误信息!!
---------------------------------------------------------------------------------------------
2013-1-23 12:52:54 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'upload' in namespace: '/pages'. Form action defaulting to 'action' attribute's literal value.
2013-1-23 12:52:54 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'upload' in namespace: '/pages'. Form action defaulting to 'action' attribute's literal value.
2013-1-23 12:52:59 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: Could not find action or result
There is no Action mapped for action name upload. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
---------------------------------------------------------------------------------------
这个是Struts2的配置文件

<struts>
<package name="advance" extends="struts-default" namespace="/file">
<action name="uploadform">
<interceptor-ref name="basicStack"/>
<result name="SUCCESS">
/pages/uploadform.jsp
</result>
</action>

<action name="upload" class="outman.file.UploadAction">
<interceptor-ref name="fileUpload"/>
<!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/>-->
<interceptor-ref name="basicStack"/>
</action>
</package>
</struts>
-------------------------------------------------------------------------------------------
这个是jsp的页面
<%@ page  pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>文件上传页面</title>
</head>
<body>
<h1>
文件上传
</h1>

<s:form action="upload" method="post" theme="xhtml" enctype="multipart/form-data">
<s:file label="File" name="some"/>
<s:submit value="提交"/>
</s:form>
</body>
</html>
---------------------------------------------------------------------------------------
这个是web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

----------------------------------------------------------------------------

真心求解决啊 !!!!弄的我都烦死了 --------------------编程问答-------------------- 报错:
Could not find action or result
There is no Action mapped for action name upload. - [unknown location]
很明显。
这是你自己写的还是复制了别人或者说在别人的代码基础上改的? --------------------编程问答-------------------- 在别人的代码基础上改的?  怎么了? --------------------编程问答-------------------- 你的<result name="SUCCESS">
/pages/uploadform.jsp
</result>


/pages/uploadform.jsp
路径不对吧 。 --------------------编程问答--------------------
引用 楼主 XXX_fxw 的回复:
以下都是错误信息!!
---------------------------------------------------------------------------------------------
2013-1-23 12:52:54 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No co……


<action name="upload" class="outman.file.UploadAction">
<interceptor-ref name="fileUpload"/>
<!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/>-->
<interceptor-ref name="basicStack"/>
</action>
这里没有result;还有要检查你的class的值是否对的
--------------------编程问答-------------------- 你debug能跳进你的类吗? --------------------编程问答--------------------
引用 4 楼 liukewengx 的回复:
引用 楼主 XXX_fxw 的回复:以下都是错误信息!!
---------------------------------------------------------------------------------------------
2013-1-23 12:52:54 com.opensymphony.xwork2.util.logging.common……


这个result加上去了  class值应该不会错 我截图 过来
---------------------------------------------------------------------------------------------


--------------------编程问答--------------------
引用 5 楼 chenyujian1987 的回复:
你debug能跳进你的类吗?



我就是不会用断点...  --------------------编程问答-------------------- 现在 这个问题 解决了  我在jap页面加了namespace,就好了  现在又出新问题了 


一提交的时候报“HTTP Status 404 - No result defined for action outman.file.UploadAction and result SUCCESS
” --------------------编程问答-------------------- 你的空间名是filter  错误提示在空间里面pages里面找不到action  你不会断点没关系,在你的类里面加个
打印 System.out.print(1);看看控制台会不会输出1,如果没有输出 证明 没进你的方法 --------------------编程问答--------------------
引用 9 楼 a8509190 的回复:
你的空间名是filter  错误提示在空间里面pages里面找不到action  你不会断点没关系,在你的类里面加个
打印 System.out.print(1);看看控制台会不会输出1,如果没有输出 证明 没进你的方法



这个我知道 我用了 问题是命令行一个都没打印出来 

但是 上传却能够成功(我用页面弹出接受成功却不显示)  但是能上传  能上传到文件夹里面  

能加QQ聊吗?407901876    --------------------编程问答-------------------- 以下是action类
---------------------------------------------------------------------------------


package outman.file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.commons.io.IOUtils;

public class UploadAction extends BaseAction {
private File some;

private String someFileName;  //上传文件名称
private String someContentType;                  //上传文件类型

//存放文件的路径
private String imagePath;

public String execute() throws Exception{
System.out.println("aa");
//随机生成上传文件名字
String imageName = "File"+ System.currentTimeMillis() + someFileName.substring(someFileName.lastIndexOf("."));
System.out.println(imageName);
//上传文件使用的相对路径   链接的时候使用
imagePath = "upload_image/"+imageName;
System.out.println(imagePath);
//上传文件使用的绝对路径  写文件的时候使用
String realImagePath = toRealPath(imagePath);

//从缓存中读取图片文件
BufferedInputStream is = new BufferedInputStream(
new FileInputStream(some));

BufferedOutputStream os = new BufferedOutputStream(
new FileOutputStream(realImagePath));

IOUtils.copy(is, os);
is.close();
os.close();

return "success";
}


public File getSome() {
return some;
}

public void setSome(File some) {
this.some = some;
}

public String getSomeFileName() {
return someFileName;
}

public void setSomeFileName(String someFileName) {
this.someFileName = someFileName;
}

public String getSomeContentType() {
return someContentType;
}

public void setSomeContentType(String someContentType) {
this.someContentType = someContentType;
}

public String getImagePath() {
return imagePath;
}

public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}


}
--------------------编程问答-------------------- <action name="upload" class="outman.file.UploadAction">
 <interceptor-ref name="fileUpload"/>
 <!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/>-->
 <interceptor-ref name="basicStack"/>
    <result name="success">/pages/uploadform.jsp</result>
 </action>
 </package>
 </struts> --------------------编程问答--------------------
引用 12 楼 sen_linzhiwang 的回复:
<action name="upload" class="outman.file.UploadAction">
 <interceptor-ref name="fileUpload"/>
 <!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/>-->
 <interceptor-ref name="b……





这个怎么了? --------------------编程问答--------------------
引用 12 楼 sen_linzhiwang 的回复:
<action name="upload" class="outman.file.UploadAction">
 <interceptor-ref name="fileUpload"/>
 <!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/>-->
 <interceptor-ref name="b……


那个页面 什么都没有 2句话<h1>
文件上传成功
</h1>
<img src="../../${imagePath}"> --------------------编程问答-------------------- 你在页面中使用的action是upload,而在struts.xml配置中,却没有为upload这个action配置result,你处理文件上传的java类中也有return "success",所以当UploadAction的execute()执行完成后,返回"success",却在struts.xml中找不到对应的result,所以报错了。 --------------------编程问答--------------------
引用 15 楼 sen_linzhiwang 的回复:
你在页面中使用的action是upload,而在struts.xml配置中,却没有为upload这个action配置result,你处理文件上传的java类中也有return "success",所以当UploadAction的execute()执行完成后,返回"success",却在struts.xml中找不到对应的result,所以报错了。


难道这个不是upload的action和result吗?这个就是struts.xml中的action配置 之前没有加 我加了也报这个错误
------------------------------------------------------------
<action name="upload" class="outman.file.UploadAction">
<interceptor-ref name="fileUpload" />
<!-- 使用的是upload拦截器 需要引用 <interceptor-ref name="basicStack"/> -->
<interceptor-ref name="basicStack" />
<result name="success"> /pages/uploadimage.jsp </result>
</action> --------------------编程问答-------------------- 我这有使用struts2实现上传下载的代码.需要的话联系我. --------------------编程问答--------------------
引用 10 楼 XXX_fxw 的回复:
引用 9 楼 a8509190 的回复:你的空间名是filter  错误提示在空间里面pages里面找不到action  你不会断点没关系,在你的类里面加个
打印 System.out.print(1);看看控制台会不会输出1,如果没有输出 证明 没进你的方法


这个我知道 我用了 问题是命令行一个都没打印出来 

但是 上传却能够成功(我用页面弹出接受成功……


我回去加你,你发项目我们一起研究下。 --------------------编程问答--------------------
引用 10 楼 XXX_fxw 的回复:
引用 9 楼 a8509190 的回复:你的空间名是filter  错误提示在空间里面pages里面找不到action  你不会断点没关系,在你的类里面加个
打印 System.out.print(1);看看控制台会不会输出1,如果没有输出 证明 没进你的方法


这个我知道 我用了 问题是命令行一个都没打印出来 

但是 上传却能够成功(我用页面弹出接受成功……


80286048 你可以加我QQ --------------------编程问答-------------------- 我也是报同样的错误,不知道是什么原因
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,