Html代码

<s:form action="/admin/login" method="post"> 
    <s:textfield name="username" id="usenrame" label="用户名" /> 
    <s:password name="password" id="password" label="密码" />  
    <s:submit type="input" value="登录" id="btnsubmit" cssClass="btnsubmit"></s:submit>  
    </s:form>

struts.xml中的配置代码如下 (代码2):
Xml代码

<package name="admin" namespace="/admin" extends="struts-default"> 
    <action name="login" class="com.longweir.struts2.action.LoginAction">  
       <result name="success">/actionResult.jsp</result>  
       <result name="login" type="resdirect">/admin/login.jsp</result>      
       <result name="input">/admin/login.jsp</result> 
    </action> 
    </package>

在网上搜索了下,搜索网络给出的答案几乎都说把<s:form action="/admin/login method="post" >中的login后加上.action后缀了,做了测试,问题仍然没有解决。

通过我观察发现有两个地方需要修改,首先<s: form>表单中需要加入命名空间参数namespace,和struts.xml中配置一致。其次,<s:form action=xxx> 中直接写action映射的名字,比如我的xml中是login,则这里直接写login即可,不需要画蛇添足加上.action后缀或者其他的前置路路径,所以修改后的客户端文件配置为代码:

Html代码

<s:form action="login" method="post" namespace="/admin">  
    <s:textfield name="username" id="usenrame" label="用户名" />  
    <s:password name="password" id="password" label="密码" /> <s:submit type="input" value="登录" id="btnsubmit"  
    cssClass="btnsubmit"> 
    </s:submit>  
    </s:form>

当然,如果你不是使用的struts2的标签,而是使用的传统的html代码,则表单的action属性必须加上完整的路径和后缀

也就是说,必须改成如下代码:

<form name="form" method="post" action="/admin/login.action">

你如上指定后,当浏览器给出如上的请求/admin/login.action ,struts2框架将首先在sturts.xml中查找 /admin 名称空间,如果找到了(比如我这里显然有这个名称空间),则执行login.action,如果没有找到,会到默认的名称空间中查找,如果默认的也没有,则提示错误,没有映射该action.

分析下我出现的错误,在我的原始的代码 (代码1)中因为没有指定namespace,那么框架认为输出表单的请求和提交表单的请求都是在一个名称空间中,即使在/admin名称空间中,此事虽然可以找到,可以运行,但是会提示这个警告.

如果在你的struts.xml文件中指定了名称空间,那么,如果在客户端使用struts2的标签,则要同样指定名称空间,但action= 这后面,直接写action名即可,不需要加上名称空间的前缀在前面。

因为,struts2框架会根据你所指定的名称空间以及你系统当前应用所映射的路径,构造一个完整的请求路径。比如如上正确的 代码3的 struts2代码,在浏览器中查看源码,解析的结果是:

Html代码

<form id="login" name="/admin" action="/guestbook/admin/login.action" method="post">  
    <table class="wwFormTable"> 
    <tr>  
        <td class="tdLabel"> 
        <label for="usenrame" class="label">用户名:</label> </td>  
        <td><input type="text" name="username" value="" id="usenrame"/></td>  
       </tr> 
       <tr> 
        <td class="tdLabel"><label for="password" class="label">密码:</label></td>  
       <td><input type="password" name="password" id="password"/></td> 
    </tr>  
      <tr> <td colspan="2"><div align="right"><input type="submit" id="btnsubmit" value="登录" class="btnsubmit"/> </div></td>  
       </tr>  
    </table> 
    </form>

可以看到,输出的action 请求地址非常正确,自动加入了当前应用的名称和根据namespace所整理成的完整的请求路径:"/guestbook/admin/login.action

但是,假如我们人为的在action后面加上 action="/admin/login" ,虽然你指定了namespace="/admin" ,那struts2框架不会给你加上.action的后缀(可以查看输出的html源码中是没有.action这个后缀的),最后还是会出现标题中所提示的警告,虽然还是可以正常工作.

所以,我个人总结为如下:

1. 如果你的xml配置文件中设置了namespace ,建议你的终端的struts2表单标签中也设置一样的namespace

2. 如果已经按照1中的设置,那么 action = 后面直接写action名字即可,不需要加后缀(默认就会加上,xml中也一样)

3. 以上仅是针对使用struts2标签的情况下,如果你没用struts2 的标签而是使用的原始HTML标签,则action=后面必须是完整的路径地址: /应用名/名称空间/xxx.action (action 后缀要有),因为很显然,struts2不会给你自动加上那些信息。

转载于:https://www.cnblogs.com/Hero-Qiang/archive/2011/06/16/2082846.html

关于(警告: No configuration found for the specified action)解决方案相关推荐

  1. Java编写程序时出现警告:Resource leak: 'xxx' is never closed 解决方案

    菜鸟新手,学校在教Java,作业里面要求我们编程实现运算一个简单的程序,程序写好了,却发现冒出一个警告,如下图: 百度了一下,意思是申明了名为a的数据输入扫描仪(Scanner),系统就会为它分配相应 ...

  2. 打开 XMind.exe 时出现 invalid configuration location 导致无法打开的解决方案

    很有可能是因为XMind与64位系统兼容性问题导致的,需要把XMind.ini文件里面的路径修改一下. 1.找到XMind安装目录下的文件XMind.ini 2.文件中的内容替换: 将前几行,即-st ...

  3. struts2拦截器遇到的问题

    第一个错误: 2013-7-11 11:24:28 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Ap ...

  4. struts框架搭建及validator示例

    包看就会,如果哪没看懂,欢迎评论区留言交流或者私信 struts的validator示例 前置 0 项目地址 1 创建web工程 2 lib下导入jar包 3 写代码 1 创建struts项目 2 添 ...

  5. Form action defaulting to 'action' attribute's literal value.

    警告: No configuration found for the specified action: '/pages/login' in namespace: '/pages'. Form act ...

  6. System.Configuration.ConfigurationSettings.GetConfig(string)”已过时 问题的解决方法

    在VS 2005中,经常会使用到ConfigurationSettings类来读取应用程序配置文件的信息,以获取数据库连接的字符串,但是,经常会出现如下的错误: 警告"System.Conf ...

  7. 错误 error C2220: 警告被视为错误 - 没有生成“object”文件

    VS2017编译报错: 错误如下: 错误 error C2220: 警告被视为错误 - 没有生成"object"文件 解决方案: 方法:选中项目->右击->选择[属性] ...

  8. vs警告 当前源代码跟内置的版本不一致解决办法

    常在河边走,哪有不湿鞋.最近经常用vs2012便携c++程序,然后时不时遇到这个问题,这里做个记录,免得忘记 1.删除掉 我的文档/visual studio xxx/back up files/你的 ...

  9. enumeration value 'xxxxx' not handled in switch警告

    问题描述: 使用switch结构时出现警告"enumeration value 'xxxxx' not handled in switch" 解决方案: 在switch结构末添加语 ...

最新文章

  1. 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
  2. CV_CAST_8U(val);的意义
  3. 计算机英语阅读理解,2017年12月英语四级阅读理解50篇:学习计算机
  4. php 两个符号怎么打,怎么打出圈2符号
  5. JS动态赋值同时触发onchange方法
  6. [转][读书笔记]深入理解java虚拟机
  7. 算法求解中的变量、数组与数据结构(STL 中的容器)
  8. BZOJ 3744: Gty的妹子序列 [分块]
  9. Michael Bronstein从代数拓扑学取经,提出了一种新的图神经网络计算结构!
  10. 如何增加mysql字段长度_增加数据库字段长度
  11. 工作总结—HMC5883L应用的一些说明
  12. 西门子PLC怎么调试?
  13. 用Python编写程序,写一个通信录。
  14. flink-HA集群搭建和问题记录
  15. html设置编剧,编剧必备之电影剧本创作六大基本步骤
  16. 缩减50%调试成本  小匠物联推可远程的串口调试助手
  17. python打不开py文件查看代码,用python打开py文件
  18. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191(特殊01背包)
  19. 【《操作系统慕课版》合集】期末复习 + 核心算法整理 + 课后答案
  20. npm引入小程序官方WeUI组件库weui-miniprogram

热门文章

  1. Datawhale来厦大啦!
  2. 从0到1构建数据科学竞赛知识体系,有夕,鱼佬,茂霖等竞赛大咖将特邀分享...
  3. 华为天才少年稚晖君自制硬萌机器人,开源5小时,GitHub收获317星!
  4. 苹果12 Pro Max和mini测评来了,看完我选择了iPhone 12
  5. 【2020】清华大学《高级机器学习》课件和专家特邀报告(附pdf下载)
  6. 使用pytorch构建一个神经网络、损失函数、反向传播、更新网络参数
  7. PE 文件格式 .text .data .idata .rsrc
  8. 汇编语言(王爽 第三版) ret retf总结 以及检测点10.1
  9. 后退N帧协议中的滑动窗口
  10. 亲测可以使用的:Maven将中央仓库修改为阿里云的maven仓库