- 浏览: 1536174 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
struts的form标记定义了一个页面的表单,但该struts标记需要根据action
的值来查找module config里的action
mapping
,并根据action
mapping
的值来初始化action
form。因此,在form标记中需要获取一个module config
。在这里,获取哪一个module config成为了form标记能否正常工作的关键,如果module config的获取值不正确,将会造成对应的action
mapping
找不到或者找到但却不是正确的action
mapping
。从而造成Cannot
retrieve
mapping
for
{action
name}的错误或者其他意外错误。在form标记的lookup方法中,包含了该查找module的过程,它的查找方法为首先从request中获取当
前的module config,如果没有找到,就从servlet context中获取默认的module config(即module
prefix为""的module)。
我们分析ActionServlet的初始化方式,可以发现ActionServlet将初始化好的module
config分别保存在servlet
context的属性中,其中的属性名为Globals.MODULE_KEY+prefix,但request对象的当前module
config是怎么来的呢。它是ActionServlet在获取到一个请求后,根据请求的url与保存在servlet
context里的module
prefix进行匹配,如果匹配成功,则将属性名为Globals.MODULE_KEY+"匹配成功的prefix"的module
config作为当前的module config返回,该过程出现在ActionServlet的process方法中,在select
module的时候,将根据以上规则,选择当前的module
config,并保存在request的属性Globals.MODULE_KEY。并将实例转给RequestProcessor对象。
我们从上面的分析中可以看出,包含form tag的jsp页面,如果要正确的将自已关联到一个module中,则需要事先将当前module
config对象放在request请求中,但存放module
config到request请求的动作是在ActionServlet中完成的。因此,页面只有在经过了对一个Acton进行处理后(在处理action
的过程中,会根据action
的
url来匹配当前的module,并将其保存在request中),并通过redirect=false的方式下重定向到一个jsp页面,才能使该jsp
页面正确的关联到module中,否则都将关联到默认的module
config中,如直接在地址栏中键入jsp的url这种情况下,所有的jsp文件都关联到默认的module config中。
from:http://www.blogbus.com/blogbus/blog/diary.php?diaryid=139866
今天试着把写的系统登录模块加到我们现有的模块里来,他写的时候因为有些试验的成分,所以没有按照我们项目的配置来写,也没有按照我们的模块来划分配置,加过来以后重新配置了模块信息,结果居然无法正常运行。显示错误:“cannot retrieve action mapping 。废了九牛二虎之力,都无法解决。web.xml、struts-config、模块配置,一切看起来都无比的正常,但就是运行不了。真搞不清楚是哪里出了问题。还以为搞不定,晚上要加班了,谁知道,踏破铁鞋无觅处,柳暗花明又一村,在google上搜索关键字"action mapping 找不到",第一个链接居然就是问题的答案!(还从来没有只点一次就可以找到问题答案的经验,所以兴奋无比^O^)
总的来说,问题的原因就在于,struts是在第一次收到对action 的请求(注意:不包括jsp的请求)时,提取这个请求的url的路径信息,把相应模块的mapping 信息设置到请求中去 。 如果在进入一个模块时,第一次访问的是一个jsp页面,而在这个jsp页面中提交到该模块的一个action ,就会出现找不到action mapping 的情况。这就是因为,在进到这个模块时,访问的是jsp,这个模块的任何一个action 都没有被访问到,所以struts的ActionServlet还没有来得及把这个模块的mapping 设置到请求中,自然找不到该模块的action 。
因此,这就引出一个约定,就是系统中尽量避免对Jsp的直接访问,如果要访问也要通过action 来forward 。 虽然看起来麻烦一点,但是安全性、健壮性都会有所提高。
from:http://dev.csdn.net/article/55/55476.shtm
Struts 1.1支持多模块开发,在myEclipse的Web Application Project里先建立新module (New->Struts 1.1 Module),
再依次加Form Action
ActionForward (New -> Struts 1.1 Action
, Form & JSP).有时myEclipse会找不到自己刚刚加的Form,手动添加即可,没什么大不了的。myEclipse的web.xml模板不符合标准,需要手动更改。TLD文件好像也不太对,可以用自己曾经做过项目的TLD代替。
下面是两个折腾我很久的问题。
1) 如果在我们security模块里有
<action
></action
> path="/UserSecurityCheck"
type="com.scs.presentation.security.UserSecurityCheckAction"
name="UserLoginForm" scope="request"
input="/init.do">
<forward name="loginSucceed" path="/mainmenu.jsp"></forward>
这个例子中,注意mainmenu.jsp前面有个/,ActionServlet会在当前module里寻找这个jsp,也就是说mainmenu.jsp需要放在/%webroot%/security/的目录下面,而不是直接在/%webroot%/下
2) struts的form标记定义了一个页面的表单,但该struts标记需要根据action 的值来查找module config里的action mapping ,并根据action mapping 的值来初始化action form。因此,在form标记中需要获取一个module config。在这里,获取哪一个module config成为了form标记能否正常工作的关键,如果module config的获取值不正确,将会造成Cannot retrieve mapping for {action name}的错误。查找方法为首先从request中获取当前的module config,如果没有找到,就从servlet context中获取默认的module config。
现在struts framework的实现是这样的,只有ActionServlet正确地将module config对象赋值给request的属性Globals.MODULE_KEY后,后来的含form tag的属于该模块的jsp页面才能被struts framework正确与对应此module config挂钩。倘若编程人员/用户试图对某个模块发出的第一个请求是jsp而不是action ,actionServlet 就没有机会做上述的准备工作(因为web container会直接处理jsp请求,不会转发给actionServlet),那么接下来处理jsp中的form tag时,struts framework就会试图从default module config中寻找该actionMapping(因为request里的module specfic config依然为空,所以只好从default里找了),一般上这种寻找是没有结果的,最后framework就会返回Cannot retrieve mapping for ThisAction的错误。
结论是,接入每个module的第一个页面必须是由action 请求(而不是jsp请求),以给actionServlet一个机会装载对应的module config并cache.
<script type="text/javascript"><!-- google_ad_client = "pub-4348265167276910"; /* 468x60, 个人博客 */ google_ad_slot = "2046406163"; google_ad_width = 468; google_ad_height = 60; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</script>
很急 不过看了你的文章 讲的太多了 能不能明了点啊
我也是 首先 访问的.jsp的 类似在 jsp里有个 login的 action
然后就出现 Cannot retrieve mapping for action /addProductType
abin103@126.com 欢迎加流
谢谢
<action-mappings > <action attribute="guestbookForm" input="/input.jsp" name="guestbookForm" parameter="method" path="/guestbook" scope="request" type="org.springframework.web.struts.DelegatingActionProxy" validate="false" /> </action-mappings>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html xhtml="true" lang="true">
<body>
<html:form action="/guestbook.do
?method=save" onsubmit="return validateUserForm(this)">
<html:hidden property="method" value="save" />
username:<html:text property="name" ></html:text>
<html:errors property="name" />
<html:submit value="提交">
</html:submit>
<html:javascript formName="UserForm" />
</html:form>
</body>
</html:html>
发表评论
-
fckedit和struts2集成不能上传文件的解决方法
2010-01-24 10:52 1620以前在使用fckedit+strut1上传文件很顺利,后来使用 ... -
struts validator框架
2010-01-09 13:56 1430Struts 验证器基础 步骤 1. 安装 Strut ... -
The path of an ForwardConfig cannot be null-struts validator验证框架异常
2010-01-09 13:54 3049struts validator验证框架异常 在测 ... -
关于一个Action对应多个Form
2009-12-28 23:49 1512由于一个Action可以用多个path来访问,所以我们可以通过 ... -
一个Action对应多个Form DispatchAction
2009-12-28 23:32 2711一个Action对应多个Form ... -
DynaValidatorForm类
2009-12-28 23:23 1290DynaValidatorForm类 http ... -
Struts出现No getter method for property的解决
2009-12-28 22:48 2013请从一下几方面着手检查代码 1、JavaBean中的属性 ... -
Struts Validator验证器使用指南
2009-12-07 18:34 788Struts Validator 验证器 ... -
Form '***' not found for locale 'zh _CN'
2009-12-07 16:13 4371Form '***' not found for locale ... -
Struts2 拦截器详细配置过程
2009-12-06 21:23 18241:所有拦截器的超级接口Interceptor ,Ac ... -
如何在SSH框架中使用Validator框架
2009-12-05 00:19 1334关键字: validator 下 ... -
java.lang.NoSuchMethodException
2009-12-04 23:56 2051关键字: validator 下面将介绍如何在SSH框架 ... -
Struts验证框架与一些技巧
2009-12-04 23:46 16498还是通过一些步骤例子说明 首先建立Struts工程的时候要 ... -
Struts-validator验证框架与一些技巧
2009-12-04 23:44 1160这个框架褒贬不一呀~~~ =========== ... -
struts 标签详解
2009-12-04 21:28 1043struts 标签详解 Action和jsp的开发其实就 ... -
HTTP Status 404 - Servlet action is not available(二)
2009-12-04 18:41 5874今天在帮公司的新手弄SSH的一个登录程序时,出现了Servle ... -
HTTP Status 404 - Servlet action is not available(一)
2009-12-04 18:40 7831sp /meCall 发表于2007-10-08, 1 ... -
SSH中Cannot retrieve mapping for action
2009-12-04 18:22 2186<script type="text ... -
利用Struts的Validator验证框架实现客户端和服务器端双验证
2009-12-04 18:18 1548... -
struts的parameter功能
2009-12-04 17:32 1078没有struts之前,使用servlet,最常用的是d ...
相关推荐
1 异常 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字) 可能原因:action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 ...
当你看到"Cannot retrieve mapping for action /Login"这样的异常时,通常表示Struts无法在`struts-config.xml`配置文件中找到对应的action定义。这可能是由于以下几个原因: - 在`struts-config.xml`中没有定义名...
当遇到“Cannot retrieve mapping for action /Login”这样的异常时,通常是因为在`struts-config.xml`配置文件中没有正确地定义Action或者找不到与之匹配的Action。确保你的JSP页面中提交的表单URL(如`...
1. **Cannot retrieve mapping for action 异常** 当尝试访问一个未在`struts-config.xml`中定义的Action时,会出现此异常。这可能是因为你在JSP文件中指定了一个不存在的Action,如`<html:form action="Login.do">...
首先,我们来看第一个异常:“javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login”。这个异常通常意味着在Struts配置文件(struts-config.xml)中没有正确定义或找不到对应的Action。在JSP...
#### 一、异常 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login **异常描述**: 该异常通常出现在尝试访问一个未在`struts-config.xml`文件中正确配置的Action时。具体表现为无法获取...
1. 异常`javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login` 这个错误表明在`struts-config.xml`中没有为`/Login`动作定义映射,或者找不到匹配的动作。检查`struts-config.xml`的`...
1. 异常 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login 这个错误表明在struts-config.xml中没有为/L Login定义Action Mapping。确保在配置文件中正确地声明了Action,如: ```xml ...
例如,在struts-config.xml文件中没有配置companyNews的action,引发javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews。 解决方法:在struts-config.xml文件中添加companyNews的...
1. Cannot retrieve mapping for action/submitUpdateStuffTimeRecordAction 这是Struts框架中一个常见的错误,错误信息表明无法找到相应的Action mapping。解决方法是检查Struts配置文件中的action mappings,确保...
7. “Cannot retrieve mapping for action XXX” 这个错误通常发生在 .jsp 的标签里指定 action='/XXX' ,但这个 Action 并未在 struts-config.xml 里设置过。解决方法是检查 struts-config.xml 文件,确保 Action ...
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login/LoginAction 这种异常通常发生在使用Struts框架时,当JSP页面尝试访问一个未在`struts-config.xml`中定义的Action时会抛出此异常。...
“Cannot retrieve mapping for action XXX” - **异常描述**:试图访问一个在 Struts 配置文件 `struts-config.xml` 中未定义的 Action。 - **解决方案**: - 确认 `.jsp` 文件中的 `<%-- tag --%>` 指向的 ...
Cannot retrieve mapping for action XXX **问题描述:** 当请求一个特定的 Action 时,如果在 `struts-config.xml` 文件中找不到相应的映射配置,则会抛出此异常。 **解决方法:** - 检查 `struts-config.xml` ...
Cannot retrieve mapping for action XXX.jsp **错误描述**:当Struts无法根据指定的action路径找到对应的映射时,会抛出此异常。通常是因为在`struts-config.xml`中未正确配置Action映射。 **解决方法**: - ...
#### 三、Cannot retrieve mapping for action XXX 此异常表明 Struts 无法为指定的动作名找到相应的映射。这可能是由于 `struts-config.xml` 中没有正确配置动作映射,或者是 Web 应用配置文件 `web.xml` 中的配置...
(b) placing SQL keywords, such as select, under the column names they want to retrieve (c) typing a syntactically correct SQL query that uses column and table names similar to the correct column and...
The IIS script mapping script is a command-line script that is used to configure script maps for IIS 6 and for IIS 7 in Classic mode. The script-mapping script is not needed if you use the Visual ...