No configuration found for the specified action解决办法

http://blog.csdn.net/carefree31441/article/details/4857546

使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:form>标记时,发现控制台总是输出警告信息,

警告信息内容如下:

警告: No configuration found for the specified action: ‘ShowMessage‘ in namespace: ‘‘. Form action defaulting to ‘action‘ attribute‘s literal value. 
2008-9-6 11:35:47 org.apache.struts2.components.Form evaluateExtraParamsServletRequest 
警告: No configuration found for the specified action: ‘ShowMessage‘ in namespace: ‘‘. Form action defaulting to ‘action‘ attribute‘s literal value.

showmsg.jsp代码如下

<%@ taglib prefix="s" uri="/struts-tags" %> 
...... 
<div> 
hello world 
<s:form name="ShowMessage" method="post" action="/hello/ShowMessage.action" > 
<s:textfield label="user name" name="username"></s:textfield> 
<s:submit></s:submit> 
</s:form> 
</div> 
......

struts.xml配置如下: 
...... 
<struts> 
<package name="hello" extends="struts-default" namespace="/hello"> 
<action name="ShowMessage" class="com.historycreator.strutstest.ShowMessage"> 
<result>/digg/showmsg.jsp</result> 
</action> 
</package> 
</struts>

打开showmsg.jsp页面时,就出现上述异常。尝试了各种配置和访问方法,均出现警告。搜索网络给出的答案几乎都说把<s:form name="ShowMessage" method="post" action="/hello/ShowMessage.action" >中的.action去掉就可以解决了,做了测试,问题仍然没有解决。更有人让把<s:去掉,不用tag,直接写<form>这个当然不会有问题,但是一会用标记,一会不用,很杂乱,并且不是解决问题的根本之道。

解决方法: 
经过测试发现,是没有正确使用tag的原因,这种情况下,正确的写法应该是,<s:form name="ShowMessage" method="post" action="ShowMessage" namespace="/hello" >

原因分析:

因为开始使用的struts2标签(form)并未指定namespace属性。所以struts2会默认从根命名空间"/" 搜索action‘/hello/ShowMessage.action‘,如搜索不到则进入默认命名空间‘‘搜索action串,在默认命名空间中是肯定找不到自己定义的action的,所以,struts2抛出一个警告信息。

现在我们指定了namespace为/hello,则struts2会直接在/hello命名空间寻找。可以想象,如果在这么命名空间里找不到请求的action,也会抛出一条类似的信息。

注意,<s:form name="ShowMessage" method="post" action="ShowMessage" namespace="/hello" > 
不能写成<s:form name="ShowMessage" method="post" action="ShowMessage.action" namespace="/hello" >

这样仍然有对应的警告信息,并且提交后出现无法访问的结果。因为没有ShowMessage.action这样一个action,这个.action不能由我们手工添加,Struts2会自动为你完成这个工作,并且手工添加是不行的,就不必多此一举了。但是在其他的场合,比如使用超级链结,则可以加上这个.action。

时间: 2024-10-12 15:55:09

No configuration found for the specified action解决办法的相关文章

[转]No configuration found for the specified action解决办法

使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:form>标记时,发现控制台总是输出警告信息, 警告信息内容如下: 警告: ...... <div> hello world <s:form name="ShowMessage" method="post" action="/hello/ShowMessage.action" > <s:textfield label="us

Eclipse Wowza 插件报 &quot;The builder launch configuration could not be found&quot; 错误的解决办法

前边有篇博客<Eclipse 报 "The builder launch configuration could not be found" 错误的解决办法>介绍了 Eclipse 报错 "The builder launch configuration could not be found" 的解决办法,按那个办法处理之后,发现不报错了,但 ant 的自动构建没了.这样没法接受.        看来逃避是解决不了问题呢.所以觉得<Eclipse

struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法

环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置 现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运行时提示找不到Action 解决办法: 1. 检查生成的war包中\WEB-INF\classes\下有无META-INF目录,如果没有,在eclipse里resource\META-INF下随便放一个文件,比如test.xml,这样maven打包生成war包时,才会在classes下创建META-

springboot 数据库出现 Consider defining a bean of type &#39;com.jc.wechat.app.dao.ClientRepository&#39; in your configuration. 解决办法

错误日志完整: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2020-01-02 12:50:10.767 ERROR 8624 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************************APPLICATION FA

Android Configuration change引发的问题及解决方法(转)

之前在学习Fragment和总结Android异步操作的时候会在很多blog中看到对Configuration Change的讨论,以前做的项目都是固定竖屏的,所以对横竖屏切换以及横竖屏切换对程序有什么影响都没什么了解.见到的次数多了,总是掠过去心理总觉得不踏实,最终还是好好看了些介绍Congifuration Change的blog,在此做个梳理也不枉花了那么多时间.有疏漏和描述不准确的地方恳请指正. 前言 在研究Configuration Change之前我主要的疑问: 横竖屏切换对布局有影

Eclipse 报 &quot;The builder launch configuration could not be found&quot; 错误的解决办法

Eclipse 忽然报 "The builder launch configuration could not be found" 错误:        解决办法如下:        1. Package Explorer 视图下选中项目名        2. Eclipse 工具栏中选择 Project -> Properties        3. 弹出的 Properties 对话框中,点击 Builders  4. 将缺失的 builder 移除掉 -> 点击 OK

Error:Configuration with name &#39;default&#39; not found.解决思路

出现这问题的原因是你依赖的工程没有make project,意思是你导入项目的工程没有正确编译通过. 解决办法很巧妙,你可能是直接在android studio里将别的成功使用的项目里该依赖的工程拷贝到你现在的项目,但是你有没有发现你拷贝不完全,没有把很多文件拷贝进去,你应该从成功使用的项目里文件夹里拷贝到你现在的项目的文件夹里,在同步android studio,你发现拷贝完全了,再次编译就能通过了.这是我下项目中遇到的一中情况,希望对同学们有所帮助,有不对的地方敬请指教哦O(∩_∩)O Er

安装mysql时 Write configuration file 错误的解决办法

原因1:mysql的安装路径不能包含字符或者中文. 原因2:select a server type时选择了Server Machine项,write configuration file报错. 解决办法:修改安装路径重新安装.select a server type选择developer Machine项(开发测试类选用)

转:安装MySQL遇到MySQL Server Instance Configuration Wizard未响应的解决办法

问题:安装了MySQL之后进入配置界面的时候,总会显示“MySQL Server Instance Configuration Wizard未响应”,一直卡死. 解决办法:Win7系统中,以管理员的权限登录系统,将C盘的ProgramData中的MySQL文件夹删掉即可(如果没有该文件夹,可能是因为隐藏了) 转自:http://blog.csdn.net/liuxiyangyang/article/details/8810094 若配置方案选择“Detailed Configuration”的配