今天在做JEE项目开发时,再次遇到了曾经遇到的问题。namespace配置不匹配问题,导致文件上传功能一直不能实现。。。

问题截图如下:

警告: No configuration found for the specified action:


问题剖析:

uploadForm.jsp 页面的相关源码:


<s:form action="upload" enctype="multipart/form-data">
<s:textfield name="title" label="File Title: " style="width:200px;height:23px"/>
<s:file name="upload" label="Select File: " style="width:280px;height:28px" method="post"/>
<s:submit value="Submit" style="width:96px;height:36px;color: #ef4300;text-shadow: 0 1px 2px rgba(0, 0, 0, .1);font: Microsoft YaHei"/>
</s:form>

struts.xml的配置如下:


<struts>
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.custom.i18n.resources" value="mess" />
<constant name="struts.action.extension" value="action" />
<package name="Forum" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="loginInter" class="com.sry.interceptor.LoginInterceptor"></interceptor>
</interceptors>
<!-- 配置文件上传 -->
<action name="upload" class="com.sry.action.UploadAction">
<!-- 动态设置Action的属性值 -->
<param name="savePath">/uploadFiles</param>
<!-- 配置Struts 2默认的视图页面 -->
<result>/uploadSucc.jsp</result>
</action>
<span > </span>。。。。。。
</package>
</struts>

解决办法:

uploadForm.jsp 页面的form标记里加上属性 namespace="/",

namespace="/">


如果不是太明白,还有参考文章 :​​http://smartan.iteye.com/blog/1542371​

    总之,这两个地方的namespace的属性值要匹配,不能省略,否则就出现这样的警告。另外,如果读者有精力,深入研究一下 namespace 的机制仍然是很有必要的,对于编程、调试等都有很大的帮助(待更)。