`
yahaitt
  • 浏览: 759912 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

有关spring中struts跳转的问题

阅读更多

1、两个配置文件(spring-config-admin.xml和struts-config-admin.xml)如下:

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->>  
  3. <!---->  
  4. <beans default-autowire="byName" default-lazy-init="true">  
  5.  <bean name="/admin/codecatalog" class="com.yahaitt.web.CodecatalogAction"/>  
  6. beans>  
  7.   
  8. <!---->xml version="1.0" encoding="UTF-8" ?>  
  9. <!---->
  10.   "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"   
  11.   "http://struts.apache.org/dtds/struts-config_1_2.dtd">  
  12. <struts-config>  
  13.  <form-beans>  
  14.   <form-bean name="codecatalogForm" type="org.apache.struts.validator.LazyValidatorForm"/>  
  15.  form-beans>  
  16.   
  17.  <action-mappings>  
  18.   <!---->  
  19.   <action path="/admin/*" name="{1}Form" scope="request" parameter="method" validate="false">  
  20.    <forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>  
  21.    <forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>  
  22.    <forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>  
  23.   action>  
  24.  action-mappings>  
  25. struts-config>  
  26.   

2、执行的ur:http://localhost:8080/yahaitt/admin/codecatalog.do

对应的jsp页面(/WEB-INF/pages/admin/codecatalogList.jsp)相关代码如下:

xml 代码
  1. <ec:table items="codecatalogs" var="codecatalog"  
  2.         action="${ctx}/codecatalog.do">  
  3.      <ec:exportXls fileName="CodecatalogList.xls" tooltip="Export Excel"/>  
  4.      <ec:row>  
  5.       <ec:column property="rowcount" cell="rowCount" sortable="false" title="序号" width="60"/>  
  6.       <ec:column property="name" title="名称" width="100"/>  
  7.       <ec:column property="shortname" title="标记" width="100"/>  
  8.       <ec:column property="null" title="Edit" width="40" sortable="false" viewsAllowed="html">  
  9.        <a href="codecatalog.do?method=edit&id=${codecatalog.id}">Edita>  
  10.       ec:column>  
  11.       <ec:column property="null" title="Remove" width="40" sortable="false" viewsAllowed="html">  
  12.        <a href="codecatalog.do?method=delete&id=${codecatalog.id}">Deletea>  
  13.       ec:column>  
  14.      ec:row>  
  15.     ec:table>  
  16.   

3、当点击“Edit”时执行了org.springside.core.web.StrutsEntityAction.java中的edit函数如下:

java 代码
  1. public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request,   
  2.          HttpServletResponse response) {   
  3.   //防止重复提交的token   
  4.   saveToken(request);   
  5.   T object = null;   
  6.      
  7.   // 如果是修改操作,id!=null   
  8.   if (request.getParameter(idName) != null) {   
  9.    object = doGetEntity(form, request);   
  10.    if (object == null) {   
  11.     saveError(request, "entity.missing");   
  12.     return mapping.findForward(LIST);   
  13.    }   
  14.   } else {   
  15.    try {   
  16.     object = entityClass.newInstance();   
  17.    } catch (InstantiationException e) {   
  18.     log.error(e);   
  19.    } catch (IllegalAccessException e) {   
  20.     log.error(e);   
  21.    }   
  22.   }   
  23.   
  24.   initForm(form, request, object);   
  25.   refrenceData(request);   
  26.   return mapping.findForward(EDIT);   
  27.   
  28. //这里的EDIT的值为"edit"字符串   
  29.  }   
  30.   

这个函数能够执行,说明/admin/codecatalog.do配置成功的,断点跟踪,在执行完mapping.findForward(EDIT);时却报错:

Cannot retrieve mapping for action /codecatalog

也就是最后又去找/codecatalog这个配置去了,但是我没有用这个配置,很不明白的是为什么到了最后mapping.findForward(EDIT);时却要去找/codecatalog?

具体的代码和相关的文件在附件里,希望能得到指点,谢谢,该问题已经困惑我两天了。

 

分享到:
评论
1 楼 yahaitt 2007-08-08  
<p>此问题已经解决,问题出在跳转到的jsp中,在return <font>mapping.findForward(EDIT)时,确实找到了对应的jsp,并执行,但是在这个jsp中有用指定action为“/codecatalog.do”这样用struts标签写的form,当JSP在执行到这里的时候会去检测这个action是否有匹配,如果没有的匹配的话就报错了,所以此处应该该为“/admin/codecatalog.do”,而且也不能写成“${ctx}/admin/codecatalog.do”</font></p>
<div class='code_title'>xml 代码</div>
<div class='dp-highlighter'>
<div class='bar'/>
<ol class='dp-xml'>
    <li class='alt'><span><span class='tag'>&lt;</span><span class='tag-name'>html:form</span><span> </span><span class='attribute'>action</span><span>=</span><span class='attribute-value'>"/codecatalog.do"</span><span> </span><span class='attribute'>focus</span><span>=</span><span class='attribute-value'>"name"</span><span> </span><span class='attribute'>styleClass</span><span>=</span><span class='attribute-value'>"form"</span><span> </span><span class='attribute'>onsubmit</span><span>=</span><span class='attribute-value'>"return validateUserForm(this)"</span><span class='tag'>&gt;</span><span>  </span></span></li>
    <li class=''><span>                    </span><span class='tag'>&lt;</span><span class='tag-name'>input</span><span> </span><span class='attribute'>type</span><span>=</span><span class='attribute-value'>"hidden"</span><span> </span><span class='attribute'>name</span><span>=</span><span class='attribute-value'>"method"</span><span> </span><span class='attribute'>value</span><span>=</span><span class='attribute-value'>"save"</span><span class='tag'>/&gt;</span><span>  </span></li>
    <li class='alt'><span>                    </span><span class='tag'>&lt;</span><span class='tag-name'>html:hidden</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"id"</span><span class='tag'>/&gt;</span><span>  </span></li>
    <li class=''><span>                    </span><span class='tag'>&lt;</span><span class='tag-name'>table</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                        </span><span class='tag'>&lt;</span><span class='tag-name'>tr</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                            </span><span class='tag'>&lt;</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span class='tag'>&lt;</span><span class='tag-name'>label</span><span class='tag'>&gt;</span><span>name:</span><span class='tag'>&lt;/</span><span class='tag-name'>label</span><span class='tag'>&gt;</span><span class='tag'>&lt;/</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                            </span><span class='tag'>&lt;</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                                </span><span class='tag'>&lt;</span><span class='tag-name'>html:text</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"name"</span><span> </span><span class='attribute'>styleClass</span><span>=</span><span class='attribute-value'>"text"</span><span class='tag'>/&gt;</span><span>  </span></li>
    <li class='alt'><span>                            </span><span class='tag'>&lt;/</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                        </span><span class='tag'>&lt;/</span><span class='tag-name'>tr</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                        </span><span class='tag'>&lt;</span><span class='tag-name'>tr</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                            </span><span class='tag'>&lt;</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span class='tag'>&lt;</span><span class='tag-name'>label</span><span class='tag'>&gt;</span><span>shortname:</span><span class='tag'>&lt;/</span><span class='tag-name'>label</span><span class='tag'>&gt;</span><span class='tag'>&lt;/</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                            </span><span class='tag'>&lt;</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                                </span><span class='tag'>&lt;</span><span class='tag-name'>html:text</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"shortname"</span><span> </span><span class='attribute'>styleClass</span><span>=</span><span class='attribute-value'>"text"</span><span class='tag'>/&gt;</span><span>  </span></li>
    <li class='alt'><span>                            </span><span class='tag'>&lt;/</span><span class='tag-name'>td</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                        </span><span class='tag'>&lt;/</span><span class='tag-name'>tr</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                    </span><span class='tag'>&lt;/</span><span class='tag-name'>table</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                    </span><span class='tag'>&lt;</span><span class='tag-name'>div</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                        </span><span class='tag'>&lt;</span><span class='tag-name'>html:submit</span><span> </span><span class='attribute'>property</span><span>=</span><span class='attribute-value'>"saveBtn"</span><span> </span><span class='attribute'>styleClass</span><span>=</span><span class='attribute-value'>"button"</span><span class='tag'>&gt;</span><span>Save</span><span class='tag'>&lt;/</span><span class='tag-name'>html:submit</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                        </span><span class='tag'>&lt;</span><span class='tag-name'>html:cancel</span><span> </span><span class='attribute'>styleClass</span><span>=</span><span class='attribute-value'>"button"</span><span class='tag'>&gt;</span><span>Cancel</span><span class='tag'>&lt;/</span><span class='tag-name'>html:cancel</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class='alt'><span>                    </span><span class='tag'>&lt;/</span><span class='tag-name'>div</span><span class='tag'>&gt;</span><span>  </span></li>
    <li class=''><span>                </span><span class='tag'>&lt;/</span><span class='tag-name'>html:form</span><span class='tag'>&gt;</span><span>  </span></li>
</ol>
</div>

相关推荐

    图书管理系统spring+struts+hibernate

    在本系统中,Spring作为“胶水”连接各个组件,如控制层的Struts和持久层的Hibernate,使得系统模块化,易于维护和扩展。此外,Spring还提供事务管理,确保数据操作的一致性。 Struts是Java Web应用的一个MVC框架,...

    Spring+struts2

    Spring 和 Struts2 是两种非常流行的 Java Web 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP)功能,而 Struts2 则是用于构建 MVC(Model-View-...

    CXF2.1.3+spring3.0+struts2.3.4

    【标题】"CXF2.1.3+spring3.0+struts2.3.4" 描述了集成这三大框架实现Web服务的场景。CXF是一个开源的服务框架,它允许开发人员创建和消费各种Web服务。Spring是Java企业级应用的核心框架,提供了依赖注入和面向切面...

    使用Spring整合Struts编写多页面用户注册模块

    在IT行业中,Spring和Struts是两个非常流行的Java Web框架,它们经常被用来构建复杂的Web应用程序。本项目涉及的是如何将这两个框架整合起来,创建一个多页面的用户注册模块。下面我们将详细探讨这个主题。 首先,...

    Spring+struts+hibernate经典注册

    Spring、Struts和Hibernate是Java开发中的三大框架,它们各自负责不同的职责,组合起来可以构建出功能强大且架构清晰的企业级应用。在这个“Spring+Struts+Hibernate经典注册”项目中,我们将深入探讨这三个框架如何...

    Spring + Struts +Hibernate简单学习源码

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自负责应用程序的不同层面:Spring作为全面的容器和依赖注入框架,负责管理对象和提供事务处理;Struts则是一个MVC(模型-视图-控制器)框架,主要...

    hibernate+spring+struts一个简单例子

    在IT行业中,构建Web应用程序时,常常会使用到三大框架:Hibernate、Spring和Struts。这些框架协同工作,可以极大地提高开发效率并简化代码管理。本文将深入探讨这三大框架的整合及其在实际项目中的应用。 首先,让...

    Ibatis+Spring+struts1框架搭建

    在Web开发中,Ibatis、Spring和Struts1是三个非常重要的组件,它们分别负责不同的职责。Ibatis是一个优秀的持久层框架,Spring是一个全面的后端应用框架,而Struts1则是一个经典的MVC(Model-View-Controller)架构...

    Spring + struts2

    在IT行业中,Spring和Struts2是两个非常重要的Java Web框架。它们被广泛用于构建企业级应用程序,因为它们提供了一种高效、灵活的方式来组织和管理应用程序的组件。本篇文章将详细探讨Spring与Struts2的整合,以及...

    基于注解的Spring+Struts2+Mybatis

    这个项目中的【struts-web】文件可能包含了Struts2的配置文件、Action类、拦截器配置以及相关的视图资源,如JSP页面。它们共同构成了Web应用的前端部分,处理用户的交互和展示。通过整合这三个框架,项目可以实现从...

    SSH 框架 struts-2.3.34 spring4.3.12 hibernate5.0.12

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)...

    spring-ssj.rar_spring_spring+Struts2+jpa集成

    Spring、Struts2和JPA是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个用于构建MVC(Model-View-Controller)...

    spring-struts.zip

    在IT行业中,Spring框架和Struts2框架是两个非常重要的Web开发框架,它们分别提供了全面的依赖注入(DI)和模型-视图-控制器(MVC)架构支持。Spring以其强大的功能和灵活性闻名,而Struts2则因其简单易用和良好的...

    Spring整合Struts2

    Spring整合Struts2是Web开发领域中常见的技术组合,它结合了Spring的强大 IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)功能,以及Struts2的MVC(Model-View-...

    spring+struts2+hibernate框架双表增删改查

    在IT行业中,Web开发是至关重要的领域,而Spring、Struts2和Hibernate是Java Web开发中的三大主流框架,它们各自负责不同的职责,协同工作可以大大提高开发效率和代码质量。本项目是一个基于这三个框架的实例,旨在...

    spring+struts2+mybatis三大框架集成实现用户的增删改查入门操作案例

    同时,还需要下载并引入Spring、Struts2、MyBatis的相关依赖库。 2. **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),配置Bean,包括数据源、SqlSessionFactory、Service层、DAO层等。同时,...

    spring&struts2.rar

    1. 引入相关依赖:在项目中添加Spring和Struts2的库文件,以及相关的整合包。 2. 配置Spring:定义Bean,包括Action、Service等,以及相关的依赖注入。 3. 配置Struts2:设置Struts2的配置文件,指定Action的类和...

    Spring_Struts集成

    在Java Web开发中,Spring框架和Struts框架都是不可或缺的组件,它们分别在依赖注入(DI)和模型-视图-控制器(MVC)架构方面展现出强大的功能。Spring提供了全面的后端服务管理,包括事务处理、数据访问和AOP(面向...

    Spring+Struts+Hibernate

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自负责应用程序的不同层面,共同构建了一个强大的企业级应用解决方案。这个"Spring+Struts+Hibernate-2整合实例"很显然是一个教学或实践项目,旨在...

Global site tag (gtag.js) - Google Analytics