`
yourenyouyu2008
  • 浏览: 287701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Action逻辑分离及顺序问题

    博客分类:
  • jsf
阅读更多

逻辑分离

<a4j:commandLink actionListener="#{trafficDocNoAssDemoAction.save}"

rendered="#{!trafficDocNoAssDemoAction.managed}">

    <f:actionListener binding="#{trafficDocNoAssDemoAction.cleanEntity()}"/>             </a4j:commandLink>

 

<a4j:commandButton                 action="#{trafficDocNoAssDemoAction.cleanEntity}"

> 

<f:actionListener binding="#{showControl.canclePanel()}"/>

<f:actionListener binding="#{cleanSubmittedValueListaner.getInstance('editForm')}"/>

              </a4j:commandButton>

在一个按钮上增加多个动作,将无关的动作拆分,便于逻辑复用。

 

顺序问题

 

建议将一个按钮上要完成的各种动作拆分,但是如果动作之间需要依赖时就必须控制各动作的执行顺序。
如下在refBspgenparAction.save之后再执行entitySupport.flush()
<a4j:commandLink actionListener="#{refBspgenparAction.save}"
value="submit" styleClass="button">
 <f:actionListener binding="#{entitySupport.flush()}"/>
<f:actionListener binding="#{xxxx}"/>
</a4j:commandLink>
Jsf规范规定了动作组件(比如h:..command..,a4j:..command..)上各种动作的顺序按下面顺序执行
1)按页面顺序<f:actionListener
2)actionListener属性(规范已经不建议使用了,a4j:commandLink运行时将之变成第一个<f:actionListener,相当于在最前面增加个<f:actionListener)
3)action属性,最后执行,主要功能是负责导航,建议不在里面做业务操作,下面的示例导致entitySupport.flush()在refBspgenparAction.save前面执行。
<a4j:commandLink action="#{refBspgenparAction.save}">
 <f:actionListener binding="#{entitySupport.flush()}"/>

建议:所有按钮都使用a4j:..command.的,并将最先需要执行的方法放入actionListener属性中。

 

分享到:
评论

相关推荐

    Action,Service和Dao功能

    Action 层是处理页面逻辑的层次,它主要负责处理用户的请求,例如接收请求参数,验证参数,处理业务逻辑等。Action 中不应该包含业务逻辑,而是专注于处理页面逻辑。 Action 只做和页面相关的事,不操作业务对象。...

    Struts 2_0的Action讲解

    MVC模式是一种软件设计模式,用于分离应用程序的数据、业务逻辑和用户界面。Model代表数据模型,存储和管理应用程序的核心数据;View负责显示数据;Controller作为模型和视图之间的桥梁,处理用户输入并调用模型进行...

    ASP.NET MVC:Filter和Action的执行介绍

    这种设计模式旨在促进代码的可测试性和可维护性,同时提供了一种方式来分离业务逻辑、用户界面和控制逻辑。 在*** MVC中,Filter(过滤器)是一种用于在处理HTTP请求的不同阶段插入自定义处理逻辑的机制。使用...

    struts in action中文版

    Struts通过ActionServlet作为控制器,实现了HTTP请求与Java对象的映射,使得业务逻辑和表现层分离,提高了代码的可维护性和可扩展性。 接着,书中详细讲解了Struts的核心组件,如ActionForm、Action、ActionMapping...

    struts2工作原理

    Struts2是一个基于MVC(Model-View-Controller...这种架构使得开发者可以将业务逻辑、控制逻辑和视图逻辑分离,提高了代码的可复用性和可维护性。同时,拦截器机制提供了强大的扩展能力,可以灵活地处理各种应用场景。

    信息系统软件设计:第3章 Struts2.0-拦截器.ppt

    - **解耦**:拦截器使得业务逻辑和框架逻辑得以分离,提高了代码的可维护性和复用性。 - **简化Action实现**:将通用功能从Action中抽离,减少Action的复杂性。 - **代码模块化**:将多个Action共有的功能封装到拦截...

    Python-appium的UI测试数据与用例分离实现yaml管理用例

    这样,测试人员可以专注于编写用例,而开发人员则负责实现执行这些用例的逻辑。 2. **YAML管理测试数据**: 在YAML文件中,我们可以定义测试数据的结构,例如,每个用例可能包含以下字段:`name`(用例名称)、`...

    Struts拦截器

    Struts拦截器是Java Web开发中的一个重要概念,尤其在基于MVC框架的Struts2中,它是实现业务逻辑控制和视图分离的关键组件。拦截器是AOP(面向切面编程)思想的一种体现,用于在动作执行前后进行额外的操作,如日志...

    struts2jar包

    这些模板语言能够帮助开发者将业务逻辑与视图逻辑分离,提升代码的可维护性。 5. **插件体系** Struts2有一个强大的插件系统,提供了诸如文件上传下载、JSON支持、AJAX集成、Tiles布局等众多功能。这些插件可以...

    java Struts2快速入门教程pdf

    Struts2基于拦截器模型,使得业务逻辑与控制逻辑分离,实现了灵活的请求处理和强大的异常管理。 二、Struts2的核心组件 1. **Action类**:它是处理用户请求的中心,每个Action对应于一个业务逻辑。用户通过URL触发...

    struts2.0详细配置文档.doc

    此外,Struts2引入了拦截器,使得业务逻辑和框架逻辑分离,更易于扩展和维护。在Struts1中,许多功能是通过ActionServlet和ActionForm实现的,而在Struts2中,这些功能往往可以通过配置拦截器来完成。 总结来说,...

    j2ee控制器及应用

    MVC模式是一种广泛应用于Web应用程序的架构模式,它将业务逻辑、用户界面和数据处理分离,以提高代码的可维护性和可扩展性。 **一、控制器的角色** 控制器作为用户请求和应用逻辑之间的桥梁,主要负责接收用户的...

    Struts1、2的工作原理

    总的来说,Struts1和Struts2在处理请求和执行业务逻辑方面有相似之处,但Struts2引入了更灵活的拦截器机制,使得业务逻辑和视图渲染更加分离,提高了代码的可维护性和可扩展性。同时,Struts2的配置管理也更为精细,...

    Struts2拦截器

    - 优点:提高了代码的可复用性和可维护性,将业务逻辑与控制逻辑分离,使得系统更加模块化。 - 缺点:过多的拦截器可能会导致性能下降,需要合理设计和优化拦截器链。 综上所述,Struts2拦截器是实现业务逻辑扩展...

    Struts2.0中文教程

    3. **分离视图**:尽量避免在Action中混杂视图逻辑,使用模板技术如JSP、FreeMarker等。 4. **测试**:编写单元测试,确保Action的正确性。 通过本教程的学习,读者将能够熟练掌握Struts2.0框架,理解其核心机制,...

    ASP.NET MVC框架开发系列课程(7):Action Filter

    ASP.NET MVC框架是微软开发的一款用于构建Web应用程序的开源框架,它基于模型-视图-控制器(MVC)设计模式,提供了高度可测试性和代码分离。在这个“ASP.NET MVC框架开发系列课程”的第七部分,我们将深入探讨Action...

    struts2学习笔记总结

    2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...

    struts2 实例源代码 +jsp页面

    3. **Interceptor(拦截器)**:Struts2的拦截器机制使得在Action执行前后可以插入额外的处理逻辑,如权限验证、日志记录等。通过在`struts.xml`中配置拦截器栈,可以控制拦截器的执行顺序。 4. **Result类型**:...

    深入学习struts2

    - Bean配置:在Struts2中,可以通过XML配置文件来定义和管理Bean,这样可以使业务逻辑与视图层分离,提高代码的可重用性。 - 常量配置:常量可以在多个配置文件中定义,如`struts-default.xml`、`struts-plugin....

    Struts2与Struts1 API使用手册CHM格式

    Struts1是最早的版本,它引入了Action和Form Bean的概念,提供了请求处理和业务逻辑分离的方式。Struts1的核心组件包括ActionServlet、Action、ActionForm和配置文件struts-config.xml。ActionServlet作为控制器接收...

Global site tag (gtag.js) - Google Analytics