今天开发中遇到一个问题,就是当使用result 的 type 为 chain的时候 如果action交给spring 来管理的话,那么这个跳转是不经过action代码的,而是直接跳到result所指定的页面里去了 如:
执行过程如下:
action1代码->action1 result -> action2 result(这里没有经过action2 的代码)
而且这里还有个问题
如果action1 result的name配置的是input的话,那么action2 result的名字必须要有name为input的配置,
不然会提示找不到result name 为input的配置
,而如果不交给spring 来管理的话,那么这个步骤是正常的,执行过程如下:
action1代码->action1 result ->action2代码 —> action2 result
我想这应该算是一个bug吧,我想这应该是spring的aop引起的问题,接下来想找找引起的原因,如果有人也碰到过这样的问题,请不吝赐教
正常的struts.xml配置如下
<package name="chain" extends="struts-default" namespace="/chain">
<action name="toTest">
<result type="freemarker">/WEB-INF/templete/test1.ftl</result>
</action>
<action name="step2" class="com.payx.www.web.test.TestChainAction" method="step2">
<result name="input" type="freemarker">
/WEB-INF/templete/test3.ftl
</result>
<result name="success" type="freemarker">/WEB-INF/templete/test2.ftl</result>
</action>
<action name="step1" class="com.payx.www.web.test.TestChainAction" method="step1" >
<result name="input" type="chain">
<param name="actionName">step2</param>
<param name="namespace">/chain</param>
</result>
<result name="success" type="freemarker">/WEB-INF/templete/test4.ftl</result>
</action>
</package>
java代码如下
public class TestChainAction {
private String test;
private String test2;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
public String getTest2() {
return test2;
}
public void setTest2(String test2) {
this.test2 = test2;
}
public String step1(){
if(test.equals(""))
return "input";
return "success";
}
public String step2(){
if(test2==null)
return "input";
return "success";
}
}
非正常的struts.xml配置如下
<package name="chain" extends="struts-default" namespace="/chain">
<action name="toTest">
<result type="freemarker">/WEB-INF/templete/test1.ftl</result>
</action>
<action name="step2" class="testChainAction" method="step2">
<result name="input" type="freemarker">
/WEB-INF/templete/test3.ftl
</result>
<result name="success" type="freemarker">/WEB-INF/templete/test2.ftl</result>
</action>
<action name="step1" class="class="testChainAction" method="step1" >
<result name="input" type="chain">
<param name="actionName">step2</param>
<param name="namespace">/chain</param>
</result>
<result name="success" type="freemarker">/WEB-INF/templete/test4.ftl</result>
</action>
</package>
java代码如下
public class TestChainAction {
private String test;
private String test2;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
public String getTest2() {
return test2;
}
public void setTest2(String test2) {
this.test2 = test2;
}
public String step1(){
if(test.equals(""))
return "input";
return "success";
}
public String step2(){
if(test2==null)
return "input";
return "success";
}
}
分享到:
相关推荐
1,shiro+hibernate4+struts2+spring+easyui+fusioncharts部分bootstrap样式全注解零配置简单权限管理web项目 2,简单shiro权限管控 细度到按钮 3,安装方法按config.properties参数配置你的数据库 4,运行dbsql.sql 5,...
Struts2是一个基于Java的开源框架,用于构建Web应用程序。它是Apache Struts1的升级版本,具有更高的灵活性、易用性和可扩展性。Struts2是建立在OpenSymphony的WebWork框架基础之上,它的核心组件包括Action、...
但有些Struts2的插件或者拦截器可能期望动作类是一个接口,这可能导致问题。确保你知道哪种代理模式正在被使用,并且它与你的代码兼容。 4. **依赖注入问题**:Spring的依赖注入可能会在Struts2的生命周期中出现...
雇员管理 角色管理 权限管理 部门管理 考勤管理 缺勤管理,struts2+spring+hibernate具有良好的可扩展性,这是我上次的一个系统的扩展版本,并且修正了几个BUG!希望您能够从这里得到你想要的启发,也渴望前辈指点...
Struts2是Struts1的升级版,它是一个基于MVC设计模式的Web应用框架,主要负责处理用户请求和展示结果。Struts2的核心是Action,它接收HTTP请求,执行业务逻辑,并通过Result返回相应的视图。此外,Struts2还提供了...
自己用struts2+hibernate3+spring2+jquery做的Ftp在线管理系统,由于要管理的网站太多,用Ftp本子查询不方便所以做了这个系统。(注:在applicationContent.xml 里配置有自动创建表结构那一项,不过已经注释了,放开...
可以拿这个Demo和Struts2_Test 和 Struts2_Hibernate_Test比较一下,认真看的话,你会发现更多有用的信息, 至少能够搞清楚Hibernate到底是做什么的,Spring的功能强大在哪里可见一斑。 特别提醒,在开发过程中,...
例如,当用户发送一个请求到服务器,Struts2会处理这个请求并调用相应的Action,Action在Spring的帮助下获取需要的服务(如DAO),然后通过Hibernate进行数据库操作。这种方式降低了各组件间的耦合,提高了代码的可...
搭建struts2 + spring框架时需要使用的关联jar struts.xml中action的属性class引用applicationContext中bean的属性id指向的值
struts+hibernate+spring+blob 三个框架集成了一下,主要包括利用struts的上传附件功能,并把上传的图片存储到oracle的blob字段。并提供显示。 没做过多的限制,还有很多bug别见怪,功能跑得通!
这样,一个基于Struts2、Hibernate4和Spring4的Web应用就可以开始开发了。在实际开发过程中,需要注意版本兼容性问题,确保各个框架之间的协同工作。同时,也要关注框架的安全更新,及时升级到更安全的版本,以防范...
1. **Struts2**: Struts2 是一个基于MVC(模型-视图-控制器)设计模式的Web应用框架,用于简化Java Servlet和JSP的开发。它提供了强大的动作调度、拦截器、结果类型和国际化等功能,帮助开发者创建结构清晰、易于...
在IT行业中,SSH框架组合是Java Web开发中的一个经典选择,它由Struts2、Spring和Hibernate三个组件组成。这个"Eclipse搭建SSH(Struts2.5.10+Spring4.3.7+Hibernate5.2.9)Demo"是一个实践教程,帮助开发者了解如何在...
Struts 2.3.7、Spring 3.2.0 和 MyBatis 3.1 是三个在Java企业级开发中广泛使用的开源框架,它们分别负责不同的职责,共同构建了一个强大的后端服务架构。 **Struts 2.3.7** 是一个基于MVC(Model-View-Controller...
标题中的“基于最新的SSH(Struts2.3.12+Spring3.2.2+Hibernate4.2.0)+ jquery EasyUI1.3.2的担保公司OA系统”表明这是一个集成开发的Web应用程序,主要用于担保公司的办公自动化(OA)。SSH是Struts2、Spring和...
本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此程序的目的是为了验证框架技术在项目中的应用。本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内...
SSH是三个流行开源框架的缩写,分别是Spring、Struts2和Hibernate,它们在Java Web开发中被广泛使用。这个“ssh_jar包”显然包含了这三个框架的核心库,供开发者在构建基于SSH的项目时使用。 **Spring框架**是Java...
Struts是MVC(模型-视图-控制器)架构的一个实现,主要用于处理前端请求和业务逻辑,而Spring则是一个全面的后端框架,提供依赖注入、AOP(面向切面编程)、事务管理等服务。 **Struts框架** Struts1是Apache软件...
SSH框架是Java开发中常用的三大开源框架Struts2、Hibernate和Spring的组合,它们各自负责应用程序的不同层面,共同构建了一个高效、灵活的企业级应用开发环境。这个SSH整合jar包是针对Struts2.3.16.1、Hibernate...
企业进销存系统,商品管理系统,系统功能完整,无BUG,界面洁简美观. ...版本:Struts2.0 、Spring 2.5 、Hibernate3 、Ext js 3.3 数据库: mySQL(含数据库脚本) 商品进销存业务功能完整,代码结构分层清晰。