使用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。

警告: No configuration found for the specified action: 'search.action' in namespace: '/'. Form action defaulting to 'action' attribute's literal value.
在网上查找解决方法,说是命名空间配置错误,但是我在<s:form>和struts中的namespace都是'/'。
问题应该不是出在命名空间上,错误提示是在命名空间'/'下找不到search.action。原来是struts2的标签<s:form>会自动完成.action的添加,不用我们手动添加,所以把jsp页面中的
<s:form action="search.action" method="post" namespace="/">改成
<s:form action="search" method="post" namespace="/">就可以了。
但如果不使用struts2的标签,则需要手动添加.action。

No configuration found for the specified action解决办法(转)的更多相关文章

  1. No configuration found for the specified action解决办法

    http://blog.csdn.net/carefree31441/article/details/4857546 使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:fo ...

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

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

  3. 【ASP.NET MVC】"[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 ..."的解决办法

    1.错误页面: “/”应用程序中的服务器错误. [A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web ...

  4. 警告"System.Configuration.ConfigurationSettings.AppSettings”已过时,解决办法

    解决办法: 直接把ConfigurationSettings写成ConfigurationManager,但是提示没有ConfigurationManager语句.

  5. [A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]解决办法

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

    环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置 现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运 ...

  7. [转]No configuration found for the specified action 原因及解决方案

    转自 报错内容 警告: No configuration found for the specified action: 'login' in namespace: ''. Form action d ...

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

    问题:安装了MySQL之后进入配置界面的时候,总会显示“MySQL Server Instance Configuration Wizard未响应”,一直卡死. 解决办法:Win7系统中,以管理员的权 ...

  9. Maven Java EE Configuration Problem 的完美解决办法

    背景: 最近在修改项目的时候,发现修改了项目依赖以后会出现如下图:Maven Java EE Configuration Problem 的问题,对于有强迫症的我来说,看到项目上面有个很小的红色小叉号 ...

随机推荐

  1. AbstractAction

    package cn.tz.action.abs; import java.io.File; import java.io.IOException; import java.text.SimpleDa ...

  2. Syncovery 是目前功能最为强大的实时自动备份工具

    Syncovery Pro(原名叫做Super Flexible Synchronizer) 是目前功能最为强大的实时自动备份工具,连FTP.WebDAV等全部支持! 最近从V6开始改用比较好记.易懂 ...

  3. C#编程(十)----------C#预处理器

    原文链接:http://blog.csdn.net/shanyongxu/article/details/46491757 C#中的预处理器指令 #IF 如果 C# 编译器遇到最后面跟有 #endif ...

  4. apt-get无法下载,一些网址Not Found 404

    apt-get无法下载,网址报 Not Found 404,原因是apt软件下载源有问题. 1.将/etc/apt/source.list里的内容替换. 在其他能够下载apt的ubuntu机器中拷贝过 ...

  5. FizzBuzzWhizz问题python解法

    FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是: 1. 你首先说出三个不同的特殊数,要求必须是个位数,比方3.5. ...

  6. 《mahout实战》

    <mahout实战> 基本信息 原书名:Mahout in action 作者: (美)Sean Owen    Robin Anil    Ted Dunning    Ellen Fr ...

  7. MiniGUI ial 移植指南

    MiniGUI ial 移植指南 2.1 ial的定义 ial是一个通用的抽象输入接口,可以输入统一的数据的结构,也就是说在MiniGUI的核心代码里输入的数据的格式是固定的,不管输入设备是鼠标 还是 ...

  8. 解决 Ubuntu Software (Software Center) Crash 问题

    问题描述: no application data found 解决方式: sudo apt purge gnome-software ubuntu-software sudo apt autorem ...

  9. 【BZOJ】【2502】清理雪道

    网络流/上下界网络流 带下界的最小可行流…… 我SB了,跑网络流的时候是得从虚拟源0往出跑……而不是S…… Orz Hzwer /*********************************** ...

  10. Android 时间日期Widget 开发详解

    桌面Widget其实就是一个显示一些信息的工具(现在也有人开发了一些有实际操作功能的widget.例如相机widget,可以直接桌面拍照).不过总的来说,widget主要功能就是显示一些信息.我们今天 ...