今天做了一个关于struts2上传文件的练习
其中的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>
<package name="test" extends="struts-default" namespace="/one">
<action name="upload" class="action.UploadAction">
<result name="success">/WEB-INF/js/upload_file.jsp</result>
</action>
<action name="show" class="action.ShowUpload">
<result name="success">/WEB-INF/js/upload_file.jsp</result>
</action>
</package>
</struts> 在包actioin中定义了两类,分别为showUpload和UploadAction,
package action;public class ShowUpload {
public String execute()
{
return "success";}
}package action;
import java.io.File;
public class UploadAction {
private File f=null;
public File getF() {
return f;
}public void setF(File f) {
this.f = f;
}
public String execute()
{
System.out.println(f.getName());
return "success";
}
}
,其中的蹊跷是,
当struts.xml中的package的namespace不加时,提交页面后会出现no result:define for action.UploadAction .
而加上之后一切正常,请高人指点,谢谢。
strutsStruts命名空间
其中的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>
<package name="test" extends="struts-default" namespace="/one">
<action name="upload" class="action.UploadAction">
<result name="success">/WEB-INF/js/upload_file.jsp</result>
</action>
<action name="show" class="action.ShowUpload">
<result name="success">/WEB-INF/js/upload_file.jsp</result>
</action>
</package>
</struts> 在包actioin中定义了两类,分别为showUpload和UploadAction,
package action;public class ShowUpload {
public String execute()
{
return "success";}
}package action;
import java.io.File;
public class UploadAction {
private File f=null;
public File getF() {
return f;
}public void setF(File f) {
this.f = f;
}
public String execute()
{
System.out.println(f.getName());
return "success";
}
}
,其中的蹊跷是,
当struts.xml中的package的namespace不加时,提交页面后会出现no result:define for action.UploadAction .
而加上之后一切正常,请高人指点,谢谢。
strutsStruts命名空间
解决方案 »
- 为什么读取从为本中读取出来的\n不会在换行了
- 怎么获取图片坐标
- 关于spring aop的拦截,但拦不住的问题
- struts如何获取请求中的XML对象
- 有关ResultSet取值问题,大家帮看看,谢谢
- 该不该用Struts的标签? 困扰我很久的问题~~
- 我的程序为什么不能编译通过?各位大侠帮帮忙啊!
- 单个jsp文件放在weblogic哪个目录下?
- 如何一个客户端采集两个不同的数据库中的数据
- 急!!The last packet sent successfully to the server was 0 milliseconds ago.的问题
- 一个J2EE项目的最小工具集
- Java开源--常见J2EE框架简介
那么你加上namespace,访问的是,http://localhost:80:部署名称/one/xx.action
去掉之后那就把访问路径的one去掉就可以了。。
加上namespace="/one"后
http://localhost:8080/one/show.action
http://localhost:8080/one/upload.action
访问以上的这两个网址都正常,我想问的是
是不是系统对http://localhost:8080/upload.action作了预留?只能通过加上一个命名空间才能访问自己定义的upload.action ?
下次回复要让我知道,点下楼层 右下角的“引用”即可。。你说的这种现象是因为,核心拦截器拦截请求的时候也是根据路径是否匹配来的,加上namespace就不会出现这样子的情况。。