昨天晚上碰到一个问题,如下:
今天早上起来,终于弄明白了。
下面说说原因:
问题出在了 struts-config-role.xml 与 struts-config-user.xml 中
struts-config-role.xml
<struts-config>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<!-- "RoleForm" action -->
<form-bean name="roleForm"
type="com.nana.web.struts.forms.RoleForm">
</form-bean>
</form-beans>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<!-- "UpdateRole" action -->
<action path=" /role/updateRole"
type="com.nana.web.struts.actions.UpdateRoleAction"
scope="request"
name="roleForm"
attribute="roleForm"
validate="true"
input="/role/updateRole.jsp">
<forward name="SUCCESS" path="/role/result/updateRole_success.jsp"></forward>
</action>
</action-mappings>
</struts-config>
struts-config-user.xml
<struts-config>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<!-- "UserForm" action -->
<form-bean name="userForm"
type="com.nana.web.struts.forms.UserForm">
</form-bean>
</form-beans>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<!-- "UpdateRole" action -->
<action path="role/updateRole"
type="com.nana.web.struts.actions.UpdateUserAction"
scope="request"
name="userForm"
attribute="userForm"
validate="true"
input="/user/updateUser.jsp">
<forward name="SUCCESS" path="/user/result/updateUser_success.jsp"></forward>
</action>
</action-mappings>
原来是两个path属性的值完全相同了,那么前边配置的那个就不会生效,也就是说,当客户端的请求路径是 /role/updateRole.do 的时候,只会是匹配 com.nana.web.struts.actions.UpdateUserAction 的实例,这对于 User模块 来说不会有任何问题(歪打正着),但对于 Role模块 来说就麻烦了,
此时UserForm 被错误地指定给了它(本来应该有自己的RoleForm),所以产生了一开头时图片上的异常。
也是,action 标签的 path属性本来就应该是唯一的,这是最基本的,无论是不是分了模块,写下来记录一下。。。
- 大小: 78.5 KB
分享到:
相关推荐
2. **配置文件**:Struts框架的配置文件(struts-config.xml)是应用的核心配置,它定义了Action类与请求URL之间的映射关系,以及视图的跳转规则。在这里,我们需要配置LoginAction类及其对应的ActionForm(用于接收...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化和灵活的Web应用程序。在Struts2中,处理程序方法可能会抛出各种异常,为了提供统一的错误处理和用户友好的异常提示,我们可以定义全局异常提示...
在Struts2中,要启用文件上传,首先需要在`struts.xml`配置文件中添加`struts.multipart.parser`属性,通常设置为`jakarta`或`common`。`jakarta`是基于Apache Commons FileUpload库,而`common`则是Struts1时代的...
3. **配置文件**:Struts1.3的配置主要在struts-config.xml文件中进行,包括Action的配置、Form Bean的定义、Action Mapping的设定等,这是整个框架运行的基础。 4. **Form Bean**:用于封装用户的输入数据,与JSP...
2. **重构配置文件**:Struts 1使用XML文件来配置各种组件,而Struts 2则提供了更为强大的配置方式,包括但不限于XML、注解和文本文件等多种形式。因此,在迁移过程中需要对原有配置文件进行重构,使之适应新的配置...
2. **配置文件**:在Struts 2中,主要的配置文件是struts.xml,它定义了Action的映射、结果类型、拦截器栈等。Struts 2.1.6支持XML和注解两种方式进行配置,使得配置更加灵活。 3. **Action**:Action是业务逻辑的...
10. **配置文件**: `struts.xml`或`struts-default.xml`等,定义了Action、结果类型、拦截器栈等配置,是控制应用行为的关键。 11. **Exception Handling**: Struts2提供了强大的异常处理机制,可以全局统一处理...
3. **配置文件**:Struts2使用struts.xml配置文件来配置Action、结果类型、拦截器等。这些配置定义了URL到Action的映射,以及Action执行后的跳转路径。 4. **Interceptor(拦截器)**:拦截器是Struts2的一个强大...
2. **配置文件**:在Struts2中,主要的配置文件是`struts.xml`,它定义了Action、结果类型、拦截器链等。通过配置文件,我们可以控制请求的映射、设置默认结果、配置拦截器等。 3. **拦截器(Interceptors)**:...
在struts.xml配置文件中,定义全局配置,如拦截器栈和Action映射。 2. **配置Spring**:引入Spring的JAR包,包括Spring的核心、AOP、上下文、ORM等模块。在applicationContext.xml中配置bean,包括DAO、Service层...
8. ** strut2.xml配置文件**:它是Struts2应用的主要配置文件,用于定义Action、拦截器、结果类型以及其他设置。通过合理配置,可以实现对应用的精细控制。 9. ** strut2.3.1.2 API**:提供的API文档是理解Struts2...
3. **配置Struts-config.xml**:在配置文件中,定义对应的Action,设置`input`属性为失败时重定向的页面,`action-class`属性指定为处理文件上传的Action类。 4. **编写Action类**:创建一个处理文件上传的Action类...
2. **配置文件**:Struts2使用struts.xml文件进行配置,包括Action的映射、结果类型、拦截器链等。学习如何编写和解析这个配置文件对于理解框架的工作原理至关重要。 3. **结果类型**:Action执行后会返回一个结果...
源码可能会展示如何配置Struts2的配置文件(struts.xml),Spring的配置文件(applicationContext.xml)以及Hibernate的配置文件(hibernate.cfg.xml)。同时,可能会包含实体类(Entity)的定义,以及相关的DAO和...
Struts的核心组件包括ActionForm、Action、ActionServlet以及配置文件struts-config.xml,这些都为创建可扩展和模块化的应用程序提供了便利。 Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,将...
在Struts2中,映射主要通过配置文件(struts.xml或struts-default.xml)来完成。 3. **Interceptor(拦截器)**:拦截器是Struts2的重要特性,它允许开发者在Action执行前后插入自定义逻辑。常见的拦截器包括类型...
2. **配置文件**:Struts2的核心配置文件通常为`struts.xml`,在这里定义了Action类的映射、结果页面以及拦截器等。你需要在这配置登录和注册的Action,指定它们对应的方法和返回的结果页面。 3. **表单验证**:...
3. **资源冲突**:例如,Struts2的配置文件(struts.xml)或Spring的配置文件(applicationContext.xml)可能在共享环境中发生冲突。 为了解决这些问题,可以采取以下策略: 1. **使用容器级别的隔离**:在应用...
- 检查并更新`struts.xml`配置文件。新版本可能引入了新的标签、拦截器或插件,可能需要进行相应的调整。 - 如果使用了自定义的拦截器,确保它们与新版本兼容。 5. **处理API变化**: - 有些API可能会在新版本中...