`
lovethisworld
  • 浏览: 52629 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

easyjweb IWebAction介绍

    博客分类:
  • Java
阅读更多

接口IWebAction是easyjweb的controller,用户可以通过重载execute方法实现所需功能。

public interface IWebAction {
	/**
	 * Action执行接口,在EasyJWeb中,所有的请求都会调用该方法,执行相关的数据操作。
	 * 
	 * @param form     封装了本次请求的Form数据信息
	 * @param module   本次调用的Module信息
	 * @return         显示数据的模板或直接跳转的URL
	 * @throws Exception
	 */
	public Page execute(WebForm form, Module module) throws Exception;
} 


  用户可以直接实现IWebAction接口,然后实现execute方法,也可以继承IWebAction的实现类,更为方便。


  IWebAction接口的实现类分布com.easyjf.web.core,com.easyjf.web,com.easyjf.web.tools,com.easyjf.web.ajax中,下面简单介绍几个Action:


1、AbstractCmdAction implements IWebAction

该类对Action命令进行封装的抽象类,用于为提供命令式WebAction的写法用户直接调用,可以减少书写繁锁的if语句,cmd命令del对应类中doDel或del方法。下面简要介绍类中方法:

  • execute(WebForm, Module)

①doBefore(),如果doBefore方法返回Page对象,则直接返回

②从form中获得命令(默认为init),查找doXxx或xxx方法(参数是集合{WebForm.class,Module.class}的4个子集),获得MethodHolder对象,不存在则利用findPage(command)方法直接查找页面,无则异常,有责直接执行doAfter(f, m)方法。

③执行IActionCommandInterceptor前置拦截器,在bean中配置,如返回Page类型,则直接放回

④执行缓存处理,若命令方法有@WebCache注解,则缓存路径,如Globals.APP_BASE_DIR/html/cache/module/cmd.index(默认是index.html),如果缓存页面存在则返回,否则在ActionContext中保存uri并CacheFinishCallback(uri)用于执行回调(用于合成模板后使用),返回null

⑤若未经过缓存页面查询或查询后得到null,则执行doXxx方法

⑥执行后拦截器方法:IactionCommandInterceptor:doAfter(method)

⑦doAfter(f, m),最后返回Page对象

  • forward(String command, boolean renew)

如果renew为true,表示全新的跳转,返回Page(command, getUrl(command), "html"),getUrl方法:如果是module.command形式,先分离;如果参数包含showHtmlPage,则返回module/cmd.html,否则根据url的type返回module.ejf?cmd=XX或/ejf//module/cmd/

如果command为module.command形式,则返回Page("actionJump", command, "action"),action类型的page则是重新执行一次跳转,相当于执行module.ejf?cmd=command。

保存command参数到form中,执行execute(form,module)返回一个Page。

  • go(command)==forward(command, true)
  • page(name)==module.findPage(name):查找全局页面--->在module配置中查找page--->查看默认情况DEFAULT_TEMPLATE_PATH/module.getViews()/module/name.html

其他方法见api Doc


2.AbstractPageCmdAction extends AbstractCmdAction

execute方法首先执行super.execute(),若未找到指定页面,则默认跳转到/module/command.html,更加灵活


3.AbstractCrudAction extends AbstractPageCmdAction

通过添删改查(CRUD)处理Action类,该类封装类crud的doXxx方法,如doList,doAdd,doDelete等,用户Action继承该抽象类类,实现指定的方法即可快速开发crud应用,如crud示例所示。默认视图页面为list.html,edit.html,详见crud示例代码。


4.AjaxEngineAction implements IWebAction

处理远程脚本调用的Action引擎,ajax引擎配置文件com.easyjf.web.easyjf-web.xml,ajax下载文件uri:/ejf/easyajax/engine.js以及ajax调用方法uri:/ejf/easyajax/ajaxCall

  • doAjaxCall(WebForm, Module):

获得methodName以及scriptName,构造RemoteCall对象:如果该scriptName服务为allow且非deny,在容器中得到相应的bean即service。然后依次分析ajax-call-p*传入参数,按type将传入参数value转换成相应的obj;按照service和参数class查找匹配的方法,判断是否为可调用远程方法(有include配置且为public方法),如是则执行该方法并返回json数据形式。转化为json数据形式是涉及到convert bean的属性可读性问题,用include或exclude控制

--------------------------------------

form中的参数:

scriptName Ajax服务bean名

easyJWebCommand ajaxCall

ajax-call-p0.java-type 参数0类型

ajax-call-p0.value 传入参数0

methodName 指定方法

remoteCallId 5836_1281253848078

---------------------------------------

 


10.RandomImgCode implements IWebAction

验证码图片输出

 

分享到:
评论

相关推荐

    EasyJWeb开发介绍.ppt

    EasyJWeb开发介绍.ppt!!!!!!!!

    EasyJWeb实用开发指南——开始EasyJWeb

    EasyJWeb实用开发指南——开始EasyJWeb

    EasyJWeb快速入门指南

    EasyJWeb快速入门指南,EasyJWeb 是一个让你开发 Java Web 应用程序变得容易及高效的框架,他是一个基于请求转发模型的 MVC 框架。本章将主要介绍如何使用 EasyJWeb 写一个简单的应用程序。

    easyjweb1.2

    EasyJWeb是基于java技术,用于企业级Java Web应用程序快速开发的MVC框架。框架设计构思来源于国内众多项目实践,框架的设计及实现借鉴当前主要流行的开源Web框架,如Rails、Struts、JSF、Tapestry等,吸取其优点及...

    easyjweb-2.0快速开发

    easyjweb-2.0 java 快速开发 easyjweb-2.0 java 快速开发 easyjweb-2.0 java 快速开发

    EasyJWEB2.0

    EasyJWeb是基于java技术,用于实现企业级Java Web应用程序快速开发框架。框架由来自国内的EasyJF开源团队维护,是一个完全由来自的中国开源爱好者开发,文档及注释全部为中文的开源框架。

    EasyJWeb开发者指南

    IWebAction 7 Page 8 WebForm 9 Module 11 AbstractCmdAction和AbstractPageCmdAction 12 配置文件 14 web.xml 14 零配置 16 easyjf-web.xml 16 PO和WebForm 19 验证 21 Annotation 21 EasyJWeb中的验证 21 实现自己...

    EasyJWeb源码构建指南

    目前EasyJWeb已经采用国际水准的项目管理工具——Maven。Maven是一个功能强大的项目管理工具,在此处不做过多介绍,有兴趣的可以阅读Maven官方文档。 首先要确保你的计算机上已经安装了Maven2.0.5以上版本,如果还...

    EasyJWeb框架0.7.0

    EasyJWeb框架0.7.0

    EasyJWeb开发指南

    EasyJWeb是基于java技术,用于企业级Java Web应用程序快速开发的MVC框架。框架设计构思来源于国内众多项目实践,框架的设计及实现借鉴当前主要流行的开源Web框架,如Rails、Struts、JSF、Tapestry等,吸取其优点及...

    配置easyjweb项目

    配置easyjweb项目 ,要用到的细节,免于发生不必要的错误

    EasyJWeb入门手册

    可以让你easyjweb快速入门使用 EasyJWeb简介 EasyJWeb是基于java技术,能实现企业级Java Web应用程序快速开发的MVC框架。框架设计构思来源于国内众多项目实践,框架的设计及实现借鉴当前主要流行的开源Web框架...

    easyjweb说明文档

    easyjweb说明文档

    EasyJWeb-Velocity脚本简明教程

    EasyJWeb-Velocity脚本简明教程

    基于EasyJWeb框架和MVC模式的Web应用

    描述了MVC设计模式和EasyJWeb框架的组成和工作原理,然后通过一个客户管理系统实例论述了基于MVC模式EasyJWeb框架的Web应用系统的实现方法。通过实例论述了基于EasyJWeb框架开发的Web应用系统可获得较高的效率性、可...

    Easyjweb 1.2.2

    类似于struts的开发框架,但开发效率却是struts的N倍。这是2010年01月15日发布出来的最新的版本。

    easyjweb-1.1

    一个轻量级的J2EE框架

    EasyJWeb实用开发指南——开始EasyJWe

    EasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——...

    easyjweb快速入门

    1、在命令行中切换到easyjweb\bin目录。 2、输入easyjweb project d:\test\ejs -ejs -extjs 会在d盘的test目录建立一个名为ejs的web项目。 3、切换到d:\test\ejs\bin目录 4、输入easyjweb crud myapp.domain....

Global site tag (gtag.js) - Google Analytics