"There is no Action mapped for namespace / and action name XXX" 估计是struts2入门都会遇到的问题
简单的总结一下今天的问题:
1.把struts.xml文件放在了WEB-INF文件夹里了,这是Struts1.x的思维定势,尽管资料上明确地指明要放在WEB-INF/classes文件里(也就是myeclipse的src文件下)
2.namespace属性的设置问题:这个属性在pakage和<s:form>中都有,如果是在struts.xml文件中的pakage的属性namespace上设置了,那么在写<s:form>的action时就要写成:namespace的属性+action或者namespace的属性/../action的名称(不需加后缀),介于namespace和action名之间可以有其他路径。举个例子:若你的struts.xml的文件如下配置,请留意namespace属性
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" namespace="/check" extends="struts-default">
<action name="login" class="com.cetus.web.struts.LoginAction" >
<result name="failure">/erro.jsp</result>
<result name="success">/index.jsp</result>
</action>
</package>
然后是登陆界面的<s:form>
<s:form action="/check/login" method="POST" >
<s:textfield name="username" label="用户名"></s:textfield>
<s:textfield name="pwd" label="密码"></s:textfield>
<s:submit value="登录"></s:submit>
</s:form>
<s:form>的namespace属性可写可不写,试了试乱写都没报错呢....因为配置了pakage的namespace的属性,<s:form>的action就可以配置为:action="check/login"或者action="check/a/login"等,struts在寻找action时会在namespace下的文件夹逐个找 直到找到为止。
综上所述:注意namespace的用法,不配置的话,action的路径怎么写都可以,但最后的斜干后必须是动作名,如果配置了的话<s:form>的action属性就必须是namespace属性+中间可以加多级的路径也可以不加+动作名.
分享到:
相关推荐
logging-1.1.1.jar/ezmorph-1.0.6.jar/freemarker-2.3.22.jar/javassist-3.11.0.GA.jar/json-lib-2.4-jdk15.jar/log4j-api-2.2.jar/log4j-core-2.2.jar/ognl-3.0.6.jar/struts2-core-2.3.24.jar/xwork-core-2.3.24....
1. **Spring配置文件问题**:如果在配置Spring的`applicationContext.xml`文件时遇到错误“The prefix "context" for element "context:component-scan" is not bound”,需要在配置文件头部添加对应的命名空间声明...
在"structs2拦截器实例计算action执行的时间"这个主题中,我们关注的是如何使用拦截器来测量Action执行的时间,这有助于优化代码性能和诊断问题。以下是实现这个功能的一般步骤: 1. **创建拦截器**:首先,你需要...
<package name="erpweb" extends="struts-default"> <result name="IOException" >/error/ioexception.jsp</result> <result name="SQLException" >/error/sqlexception.jsp</result> </global-results> ...
使用Structs2进行快速开发可以提高开发效率,减少代码量,并提供丰富的功能和扩展性。以下是关于Structs2快速开发的一些关键知识点: 1. **Struts2依赖的JAR文件**: - `struts2-core-2.x.x.jar`:Struts2框架的...
2. **Action和结果配置**:Action是Structs2中的业务处理单元,开发者可以定义Action类来处理用户请求。通过配置文件或注解设定Action和结果(Result)的映射,实现业务逻辑和视图呈现的分离。 3. **自动数据绑定**...
《Hibernate/Spring/Structs2 In Action》是一个涵盖了三个核心Java EE框架的综合学习资源,包括Spring、Hibernate和Struts2。这些框架是企业级Java应用程序开发中的关键组件,广泛用于构建可扩展、高效且易于维护的...
在IT领域,Structs2是一个广泛使用的Go语言框架,它为构建高效、可维护的Web应用程序提供了强大的支持。本入门教程旨在帮助初学者快速掌握Structs2的基本概念、使用方法和核心特性。以下是对Structs2及其相关知识点...
**拦截器处理**:Struts2过滤器通过`struts.xml`找到对应的命名空间(`namespace`)和动作(`action`)。 4. **执行动作**:调用相应的Action对象进行业务逻辑处理。 5. **返回结果**:根据Action中的返回值跳转到...
在本项目中,“三层架构Structs2+Spring+Hibernate前台Ext”是Java Web开发中的一种常见组合,用于构建基于浏览器-服务器(BS)模式的应用。 1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计...
另外,Swift还支持枚举(Enums)与结构体(Structs)的关联值和原始值,增强了数据模型的表达能力。 函数式编程在Swift中也得到了很好的支持,比如高阶函数、闭包和尾递归等特性。这些特性使得Swift的代码更加简洁...
<package name="default" namespace="/" extends="struts-default"> <action name="welcome" class="com.example.WelcomeAction"> <result name="success">/WEB-INF/jsp/welcome.jsp</result> </action> ...
Structs2的核心概念包括Action、Interceptor(拦截器)、Layout(布局)和Freemarker模板引擎等。Action是处理用户请求的核心组件,它接收请求,处理业务逻辑,并返回结果。Interceptor则允许在Action执行前后插入...
在这个“structs2拦截器实例2-权限验证拦截器”的主题中,我们将深入探讨如何使用Struts2拦截器进行权限验证。 首先,拦截器是基于AOP(面向切面编程)的概念实现的,它们可以插入到请求处理流程中,在Action执行前...
<package name="default" namespace="/" extends="struts-default"> <action name="submitSurvey" class="com.example.SurveyAction"> <result name="success">/SurveyResult.jsp</result> <result name="input...
1.2 Main characteristics, context and reasons for developing a new language....................4 1.2.1 Languages that influenced Go.......................................................................