在通过JSP中的form提交request的时候,控制台经常会报下面的警告信息:
警告: No configuration found for the specified action: 'login' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
这个问题和namespace的配置有关,经过深入研究,解决方法以及警告的原因总结如下:
原因:namespace匹配失败
form和Action的映射机制:
1) 首先用namespace进行映射(成功转入1-1,失败转入1-2)
a) 先在struts.xml中找完全匹配的package
b) 没有完全匹配的话,找缺省的package(没有配置namespace的package)
c) 没有配置缺省的package的情况下,则匹配失败-->警告: No configuration found for the specified action
1-1) namespace映射成功的话,再根据action进行映射
a) 完全匹配的话,映射成功
b) 否则,映射失败------------------>>>画面出现404错误
namespace映射成功的情况下,映射关系如下所示:(2对2映射)
JSP的form struts.xml
namespace ---->>> package的namespace
action ---->>> action的name
1-2) namespace映射失败的话,则用form中的action同package中的namespace+action的name进行
1对2匹配
a) 完全匹配的话,映射成功
b) 否则,映射失败------------------->>>画面出现404错误
namespace映射失败的情况下,映射关系如下所示:(1对2映射)
JSP的form struts.xml
action ---->>> package的namespace
action ---->>> action的name
配置例1:namespace完全匹配,不会出现警告信息
struts.xml:
namespace不配置的话,相当于缺省namespace
<struts>
<package name="struts2" namespace="/" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
login.jsp:
<s:form action="login" namespace="/">
。。。。。。
</s:form>
配置例2:匹配到缺省namespace,不会出现警告信息
struts.xml:
namespace不配置的话,相当于缺省namespace
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
login.jsp:
<s:form action="login" namespace="/">
。。。。。。
</s:form>
或者
<s:form action="login">
。。。。。。
</s:form>
配置例3:namespace匹配失败,出现警告信息
但是能够映射上,因为通过form的action可以1对2匹配成功
struts.xml:
namespace不配置的话,相当于缺省namespace
<struts>
<package name="struts2" namespace="/mypack" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
login.jsp:
<s:form action="/mypack/login">
。。。。。。
</s:form>
配置例4:namespace匹配失败,出现警告信息
并且,因为action的1对2匹配也失败了,所以form提交后,画面会返回404错误
struts.xml:
namespace不配置的话,相当于缺省namespace
<struts>
<package name="struts2" namespace="/mypack" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
login.jsp:
<s:form action="login">
。。。。。。
</s:form>
分享到:
相关推荐
2. **警告:No configuration found for the specified action: 'sum.action' in namespace: ''** 这个警告通常是因为Struts2找不到指定的Action。如果在JSP中使用 `<s:form action=”sum.action”>`,对应的源文件...
IllegalStateException: The specified child already has a parent.我的博客中有文章讲解
This result uses the ActionMapper provided by the ActionMapperFactory to redirect the browser to a URL that invokes the specified action and (optional) namespace. This is better than the ...
Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl 为 Oracle 的 SID String user = "test"; String password = "test"; Connection conn = ...
其中,-C指定创建模式,-a yes自动创建设备文件,-l 1指定Raid级别,-n 2指定磁盘个数,/dev/sdb{3,4}指定要使用的磁盘。 管理软RAID 软RAID创建后,可以使用mdadm命令来管理它。例如,要查看软RAID的详细信息,...
: No configuration found for the specified action: 'fileUpLoad.action' in namespace: '/manager'. Form action defaulting to 'action' attribute's literal value. ``` **知识点解释:** 1. **问题描述:** ...
你可以参考提供的资源,如 "No input file specified的解决方法-百度经验.url" 和 "报错 ”No input file specified.“ 排查 - zh_mead的博客 - CSDN博客.url",这些链接可能提供了更具体的步骤和案例。 在实际操作...
ASP.NET The system cannot find the file specified解决办法 Server Error in ‘/’ Application. The system cannot find the file specified Description: An unhandled exception occurred during the execution...
TypeError: No loop matching the specified signature and casting was found for ufunc det 查了半天发现是数据类型的问题,numpy在算逆的时候会先检查一下数据类型是否一致,若不一致就会报错(话说这个错误提示...
然后,调用`saveConfiguration()`保存此配置,并通过`connect(int)`方法连接指定的网络ID。注意,连接操作可能需要用户权限。 3. **密码输入**: 在`WifiDemo`中,用户可能需要输入Wi-Fi密码。这通常通过`EditText...
vs常见编译错误集锦 vs常见编译错误集锦 vs常见编译错误集锦
标题中的"S7-200通讯 specified access point not found补丁"指的是在使用Siemens S7-200系列PLC(可编程逻辑控制器)进行通信时遇到的问题,即"指定的访问点未找到"。这通常是由于网络配置错误、硬件故障或者软件不...
在我们的日常计算机使用中,有时会遇到这样的情况:“报错crashsender.exe is not found the specified path”,这通常意味着系统尝试执行一个名为“CrashSender.exe”的可执行文件,但无法在指定的路径中找到它。...
在这个场景下,"Delete the specified folder" 指的是通过编程或脚本方式删除特定路径下的文件夹。VC(Visual C++)是这个上下文中可能使用的编程环境,因为它是一个广泛用于Windows平台的C++开发工具。 删除文件夹...
Nginx 提示 "No input file specified" 的解决方法 Nginx 是一个流行的开源 web 服务器软件,然而,在使用 Nginx 时,有时可能会遇到 "No input file specified" 的错误提示,这篇文章将详细讲解该错误的解决方法。...
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
OpenSSH 命令注入漏洞(CVE-2020-15778),文件包含installs.sh、openssh-8.5p1.tar.gz、openssl-1.1.1i.tar.gz、zlib-1.2.11.tar.gz。升级时候将openssh.tar.gz放至/home下解压,进入openssh目录,执行chmod +x ...
### Struts2框架搭建及配置详解 #### 一、Struts2框架简介 Struts2是Struts的一个改进版本,它结合了WebWork框架和Struts框架的优点,并且增加了许多新特性,使得开发者能够更加方便地开发Java Web应用程序。...
在iOS开发过程中,开发者可能会遇到一个令人困惑的错误——`clang: error: no input files`。这个错误通常出现在Xcode编译项目时,提示没有找到输入文件,导致编译失败。本文将详细介绍如何解决这个问题。 ### 错误...
it is found in the word list file) is a possible correction. Your solution to this assessment should consider the following variations of a misspelled word. • Transposing of adjacent letters For ...