- 浏览: 4208434 次
最新评论
EasyJWeb中缺省URL映射转换器揭密
在EasyJWeb对Ajax的支持中,通过引用类似<script type="text/javascript" src="ejf/easyajax/UserService.js"></script>的url可以动态得到调用服务器端业务组件的javascript脚本。另外,在基于EasyJWeb的CRUD应用中,也可以使用类似http://localhost:8080/user/edit/3的URL来编辑数据表中的某一条记录。究竟EasyJWeb中是如何处理这些URL的呢?本文将作简单的分析!
在EasyJWeb中,有一个URL映射处理器,通过配置这个映射处理器可以非常简单地实现Web应用中类似URLRewrite的需求。映射处理器了代码如下所示:
//对请求路径的解析;
publicStringgetModuleName();//得到模板的名称
publicMapgetParams();//得到模板缺省参数
publicStringgetCommand();//得到模板命令
}
该接口的默认实现是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的应用中,每一个交由EasyJWeb框架处理的请求url,都会通过这个映射处理器进行转换。通过使用EasyJWeb缺省URL映射转换器,客户端请求路径/module/command/params将按以下请求规则,作如下的映射处理.
映射处理前的URL:
1、 /module/command/name=xxx
2、 /module
3、 /module/command
4、 /module/command/12345
5、/module/edit/12345/title=1111
6、/moduel/title=测试
映射处理的URL:
1~ /module.ejf?easyjwebCommand=command&name=xxx
2~ /module.ejf
3~ /module.ejf?easyjwebCommand=command
4~ /module.ejf?easyjwebCommand=command&cid=1234
5、/module.ejf?easyJWebCommand=edit&cid=123455&title=111
6、/module.ejf?title=测试
因此,在一个EasyJWeb自动代码生成的CRUD应用中,http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3 这个URL表示编辑user对象中属性cid为3的信息。使用默认的映射处理规则,上面的url可以变成如下的形式:
http://localhost:8080/user/edit/3
这个url表示运行user.ejf这个模块,传送的命令为edit,标准key值为3。
URL映射转换器的一个最典型的应用示例,就是EasyJWeb-0.8版本开始增加的远程Web脚本处理支持引擎,也即Ajax的部分功能。远程JS脚本调用支持只是EasyJWeb中的一个小小插件,EasyJWeb的Ajax实现只是一个普通的EasyJWeb Module(Action)。这个Action即com.easyjf.web.ajax.AjaxEngineAction。
看过本人《在EasyJWeb中轻松开发Ajax运用》一文的朋友都知道,远程Web脚本调用涉及到一个如何生成调用服务器端方法的Javascript Stub问题。在EasyJWeb对Ajax的支持中,可以直接通过下面的URL来生成远程javascript调用脚本。
scripttype='text/javascript'src='ejf/easyajax/engine.js'>script>
scripttype='text/javascript'src='ejf/easyajax/UserService.js'>script>
第一句返回prototype.js脚本,第二句返回EasyJWeb的Ajax支持引擎engine.js脚本,第三句返回生成服务器UserService组件的远程调用脚本。
上面的URL,改成通过原生的EasyJWeb URL来引用,可以写成下面的形式:
scripttype='text/javascript'src='easyajax.ejf?engine.js'>script>
scripttype='text/javascript'src='easyajax.ejf?easyJWebCommand=UserService'>script>
AjaxEngineAction中处理这几个调用代码如下:
returnmodule.findPage("engine-js");
}
publicPagedoPrototype(WebFormform,Modulemodule)throwsException...{
returnmodule.findPage("prototype");
}
publicPagedoAjaxHome(WebFormform,Modulemodule)throwsException...{
Stringcommand=CommUtil.null2String(form.get("easyJWebCommand"));
if(command.endsWith(".js"))
...{
command=command.substring(0,command.length()-3);
}
Objectbean=AjaxUtil.getServiceContainer().getService(command);
//System.out.println(command);
form.addResult("scriptName",command);
form.addResult("methodList",AjaxUtil.getAjaxStub(bean));
returnmodule.findPage("stub");
}
小结:
一个简单适用的Web MVC框架,不仅仅是实现单纯的页面及代码分离功能,还应该提供更多的与Web应用相关的实用工具及解决通用应用需求抽象功能。在EasyJWeb中,除拥有了很多MVC框架的基本特性以外,还内置了很多解决应用Web应用程序中一些通过需求的工具,比如URL映射处理、自动代码生成、权限系统支持等,因此会使得我们开发Web应用程序开发变得更加简单、高效。作为一个完全由国内Java开源爱好者发起及实现的Web MCX框架,虽然在EasyJWeb-0.8版本中还存在着很多问题,但只要有更多的开源爱好者参与到其中来,相信在以后的版本中会不断得到完善。
(本文作者:EasyJF开源大峡 欢迎转载,转载请保留作者声明,谢谢!)
在EasyJWeb对Ajax的支持中,通过引用类似<script type="text/javascript" src="ejf/easyajax/UserService.js"></script>的url可以动态得到调用服务器端业务组件的javascript脚本。另外,在基于EasyJWeb的CRUD应用中,也可以使用类似http://localhost:8080/user/edit/3的URL来编辑数据表中的某一条记录。究竟EasyJWeb中是如何处理这些URL的呢?本文将作简单的分析!
在EasyJWeb中,有一个URL映射处理器,通过配置这个映射处理器可以非常简单地实现Web应用中类似URLRewrite的需求。映射处理器了代码如下所示:
//对请求路径的解析;
publicStringgetModuleName();//得到模板的名称
publicMapgetParams();//得到模板缺省参数
publicStringgetCommand();//得到模板命令
}
该接口的默认实现是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的应用中,每一个交由EasyJWeb框架处理的请求url,都会通过这个映射处理器进行转换。通过使用EasyJWeb缺省URL映射转换器,客户端请求路径/module/command/params将按以下请求规则,作如下的映射处理.
映射处理前的URL:
1、 /module/command/name=xxx
2、 /module
3、 /module/command
4、 /module/command/12345
5、/module/edit/12345/title=1111
6、/moduel/title=测试
映射处理的URL:
1~ /module.ejf?easyjwebCommand=command&name=xxx
2~ /module.ejf
3~ /module.ejf?easyjwebCommand=command
4~ /module.ejf?easyjwebCommand=command&cid=1234
5、/module.ejf?easyJWebCommand=edit&cid=123455&title=111
6、/module.ejf?title=测试
因此,在一个EasyJWeb自动代码生成的CRUD应用中,http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3 这个URL表示编辑user对象中属性cid为3的信息。使用默认的映射处理规则,上面的url可以变成如下的形式:
http://localhost:8080/user/edit/3
这个url表示运行user.ejf这个模块,传送的命令为edit,标准key值为3。
URL映射转换器的一个最典型的应用示例,就是EasyJWeb-0.8版本开始增加的远程Web脚本处理支持引擎,也即Ajax的部分功能。远程JS脚本调用支持只是EasyJWeb中的一个小小插件,EasyJWeb的Ajax实现只是一个普通的EasyJWeb Module(Action)。这个Action即com.easyjf.web.ajax.AjaxEngineAction。
看过本人《在EasyJWeb中轻松开发Ajax运用》一文的朋友都知道,远程Web脚本调用涉及到一个如何生成调用服务器端方法的Javascript Stub问题。在EasyJWeb对Ajax的支持中,可以直接通过下面的URL来生成远程javascript调用脚本。
scripttype='text/javascript'src='ejf/easyajax/engine.js'>script>
scripttype='text/javascript'src='ejf/easyajax/UserService.js'>script>
第一句返回prototype.js脚本,第二句返回EasyJWeb的Ajax支持引擎engine.js脚本,第三句返回生成服务器UserService组件的远程调用脚本。
上面的URL,改成通过原生的EasyJWeb URL来引用,可以写成下面的形式:
scripttype='text/javascript'src='easyajax.ejf?engine.js'>script>
scripttype='text/javascript'src='easyajax.ejf?easyJWebCommand=UserService'>script>
AjaxEngineAction中处理这几个调用代码如下:
returnmodule.findPage("engine-js");
}
publicPagedoPrototype(WebFormform,Modulemodule)throwsException...{
returnmodule.findPage("prototype");
}
publicPagedoAjaxHome(WebFormform,Modulemodule)throwsException...{
Stringcommand=CommUtil.null2String(form.get("easyJWebCommand"));
if(command.endsWith(".js"))
...{
command=command.substring(0,command.length()-3);
}
Objectbean=AjaxUtil.getServiceContainer().getService(command);
//System.out.println(command);
form.addResult("scriptName",command);
form.addResult("methodList",AjaxUtil.getAjaxStub(bean));
returnmodule.findPage("stub");
}
小结:
一个简单适用的Web MVC框架,不仅仅是实现单纯的页面及代码分离功能,还应该提供更多的与Web应用相关的实用工具及解决通用应用需求抽象功能。在EasyJWeb中,除拥有了很多MVC框架的基本特性以外,还内置了很多解决应用Web应用程序中一些通过需求的工具,比如URL映射处理、自动代码生成、权限系统支持等,因此会使得我们开发Web应用程序开发变得更加简单、高效。作为一个完全由国内Java开源爱好者发起及实现的Web MCX框架,虽然在EasyJWeb-0.8版本中还存在着很多问题,但只要有更多的开源爱好者参与到其中来,相信在以后的版本中会不断得到完善。
(本文作者:EasyJF开源大峡 欢迎转载,转载请保留作者声明,谢谢!)
在EasyJWeb对Ajax的支持中,通过引用类似<script type="text/javascript" src="ejf/easyajax/UserService.js"></script>的url可以动态得到调用服务器端业务组件的javascript脚本。另外,在基于EasyJWeb的CRUD应用中,也可以使用类似http://localhost:8080/user/edit/3的URL来编辑数据表中的某一条记录。究竟EasyJWeb中是如何处理这些URL的呢?本文将作简单的分析!
在EasyJWeb中,有一个URL映射处理器,通过配置这个映射处理器可以非常简单地实现Web应用中类似URLRewrite的需求。映射处理器了代码如下所示:
//对请求路径的解析;
publicStringgetModuleName();//得到模板的名称
publicMapgetParams();//得到模板缺省参数
publicStringgetCommand();//得到模板命令
}
该接口的默认实现是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的应用中,每一个交由EasyJWeb框架处理的请求url,都会通过这个映射处理器进行转换。通过使用EasyJWeb缺省URL映射转换器,客户端请求路径/module/command/params将按以下请求规则,作如下的映射处理.
映射处理前的URL:
1、 /module/command/name=xxx
2、 /module
3、 /module/command
4、 /module/command/12345
5、/module/edit/12345/title=1111
6、/moduel/title=测试
映射处理的URL:
1~ /module.ejf?easyjwebCommand=command&name=xxx
2~ /module.ejf
3~ /module.ejf?easyjwebCommand=command
4~ /module.ejf?easyjwebCommand=command&cid=1234
5、/module.ejf?easyJWebCommand=edit&cid=123455&title=111
6、/module.ejf?title=测试
因此,在一个EasyJWeb自动代码生成的CRUD应用中,http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3 这个URL表示编辑user对象中属性cid为3的信息。使用默认的映射处理规则,上面的url可以变成如下的形式:
http://localhost:8080/user/edit/3
这个url表示运行user.ejf这个模块,传送的命令为edit,标准key值为3。
URL映射转换器的一个最典型的应用示例,就是EasyJWeb-0.8版本开始增加的远程Web脚本处理支持引擎,也即Ajax的部分功能。远程JS脚本调用支持只是EasyJWeb中的一个小小插件,EasyJWeb的Ajax实现只是一个普通的EasyJWeb Module(Action)。这个Action即com.easyjf.web.ajax.AjaxEngineAction。
看过本人《在EasyJWeb中轻松开发Ajax运用》一文的朋友都知道,远程Web脚本调用涉及到一个如何生成调用服务器端方法的Javascript Stub问题。在EasyJWeb对Ajax的支持中,可以直接通过下面的URL来生成远程javascript调用脚本。
scripttype='text/javascript'src='ejf/easyajax/engine.js'>script>
scripttype='text/javascript'src='ejf/easyajax/UserService.js'>script>
第一句返回prototype.js脚本,第二句返回EasyJWeb的Ajax支持引擎engine.js脚本,第三句返回生成服务器UserService组件的远程调用脚本。
上面的URL,改成通过原生的EasyJWeb URL来引用,可以写成下面的形式:
scripttype='text/javascript'src='easyajax.ejf?engine.js'>script>
scripttype='text/javascript'src='easyajax.ejf?easyJWebCommand=UserService'>script>
AjaxEngineAction中处理这几个调用代码如下:
returnmodule.findPage("engine-js");
}
publicPagedoPrototype(WebFormform,Modulemodule)throwsException...{
returnmodule.findPage("prototype");
}
publicPagedoAjaxHome(WebFormform,Modulemodule)throwsException...{
Stringcommand=CommUtil.null2String(form.get("easyJWebCommand"));
if(command.endsWith(".js"))
...{
command=command.substring(0,command.length()-3);
}
Objectbean=AjaxUtil.getServiceContainer().getService(command);
//System.out.println(command);
form.addResult("scriptName",command);
form.addResult("methodList",AjaxUtil.getAjaxStub(bean));
returnmodule.findPage("stub");
}
小结:
一个简单适用的Web MVC框架,不仅仅是实现单纯的页面及代码分离功能,还应该提供更多的与Web应用相关的实用工具及解决通用应用需求抽象功能。在EasyJWeb中,除拥有了很多MVC框架的基本特性以外,还内置了很多解决应用Web应用程序中一些通过需求的工具,比如URL映射处理、自动代码生成、权限系统支持等,因此会使得我们开发Web应用程序开发变得更加简单、高效。作为一个完全由国内Java开源爱好者发起及实现的Web MCX框架,虽然在EasyJWeb-0.8版本中还存在着很多问题,但只要有更多的开源爱好者参与到其中来,相信在以后的版本中会不断得到完善。
(本文作者:EasyJF开源大峡 欢迎转载,转载请保留作者声明,谢谢!)
在EasyJWeb对Ajax的支持中,通过引用类似<script type="text/javascript" src="ejf/easyajax/UserService.js"></script>的url可以动态得到调用服务器端业务组件的javascript脚本。另外,在基于EasyJWeb的CRUD应用中,也可以使用类似http://localhost:8080/user/edit/3的URL来编辑数据表中的某一条记录。究竟EasyJWeb中是如何处理这些URL的呢?本文将作简单的分析!
在EasyJWeb中,有一个URL映射处理器,通过配置这个映射处理器可以非常简单地实现Web应用中类似URLRewrite的需求。映射处理器了代码如下所示:
//对请求路径的解析;
publicStringgetModuleName();//得到模板的名称
publicMapgetParams();//得到模板缺省参数
publicStringgetCommand();//得到模板命令
}
该接口的默认实现是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的应用中,每一个交由EasyJWeb框架处理的请求url,都会通过这个映射处理器进行转换。通过使用EasyJWeb缺省URL映射转换器,客户端请求路径/module/command/params将按以下请求规则,作如下的映射处理.
映射处理前的URL:
1、 /module/command/name=xxx
2、 /module
3、 /module/command
4、 /module/command/12345
5、/module/edit/12345/title=1111
6、/moduel/title=测试
映射处理的URL:
1~ /module.ejf?easyjwebCommand=command&name=xxx
2~ /module.ejf
3~ /module.ejf?easyjwebCommand=command
4~ /module.ejf?easyjwebCommand=command&cid=1234
5、/module.ejf?easyJWebCommand=edit&cid=123455&title=111
6、/module.ejf?title=测试
因此,在一个EasyJWeb自动代码生成的CRUD应用中,http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3 这个URL表示编辑user对象中属性cid为3的信息。使用默认的映射处理规则,上面的url可以变成如下的形式:
http://localhost:8080/user/edit/3
这个url表示运行user.ejf这个模块,传送的命令为edit,标准key值为3。
URL映射转换器的一个最典型的应用示例,就是EasyJWeb-0.8版本开始增加的远程Web脚本处理支持引擎,也即Ajax的部分功能。远程JS脚本调用支持只是EasyJWeb中的一个小小插件,EasyJWeb的Ajax实现只是一个普通的EasyJWeb Module(Action)。这个Action即com.easyjf.web.ajax.AjaxEngineAction。
看过本人《在EasyJWeb中轻松开发Ajax运用》一文的朋友都知道,远程Web脚本调用涉及到一个如何生成调用服务器端方法的Javascript Stub问题。在EasyJWeb对Ajax的支持中,可以直接通过下面的URL来生成远程javascript调用脚本。
scripttype='text/javascript'src='ejf/easyajax/engine.js'>script>
scripttype='text/javascript'src='ejf/easyajax/UserService.js'>script>
第一句返回prototype.js脚本,第二句返回EasyJWeb的Ajax支持引擎engine.js脚本,第三句返回生成服务器UserService组件的远程调用脚本。
上面的URL,改成通过原生的EasyJWeb URL来引用,可以写成下面的形式:
scripttype='text/javascript'src='easyajax.ejf?engine.js'>script>
scripttype='text/javascript'src='easyajax.ejf?easyJWebCommand=UserService'>script>
AjaxEngineAction中处理这几个调用代码如下:
returnmodule.findPage("engine-js");
}
publicPagedoPrototype(WebFormform,Modulemodule)throwsException...{
returnmodule.findPage("prototype");
}
publicPagedoAjaxHome(WebFormform,Modulemodule)throwsException...{
Stringcommand=CommUtil.null2String(form.get("easyJWebCommand"));
if(command.endsWith(".js"))
...{
command=command.substring(0,command.length()-3);
}
Objectbean=AjaxUtil.getServiceContainer().getService(command);
//System.out.println(command);
form.addResult("scriptName",command);
form.addResult("methodList",AjaxUtil.getAjaxStub(bean));
returnmodule.findPage("stub");
}
小结:
一个简单适用的Web MVC框架,不仅仅是实现单纯的页面及代码分离功能,还应该提供更多的与Web应用相关的实用工具及解决通用应用需求抽象功能。在EasyJWeb中,除拥有了很多MVC框架的基本特性以外,还内置了很多解决应用Web应用程序中一些通过需求的工具,比如URL映射处理、自动代码生成、权限系统支持等,因此会使得我们开发Web应用程序开发变得更加简单、高效。作为一个完全由国内Java开源爱好者发起及实现的Web MCX框架,虽然在EasyJWeb-0.8版本中还存在着很多问题,但只要有更多的开源爱好者参与到其中来,相信在以后的版本中会不断得到完善。
(本文作者:EasyJF开源大峡 欢迎转载,转载请保留作者声明,谢谢!)
相关推荐
EasyJWeb实用开发指南——开始EasyJWeb
文档目录(后面数字为页码) EasyJWeb开发者指南 EasyJWeb开发者指南 1 ...EasyJWeb中的拦截器 35 Ajax支持 35 Ajax概述 35 远程脚本调用36 快速上手 37 配置Ajax 38 安全控制 38 Ajax工具 38 Ajax验证 38
EasyJWeb是基于java技术,用于企业级Java Web应用... 4、EasyJWeb插件体系,项目中的各种实用功能的扩展,可以灵活地通过基于插件的形式安装到EasyJWeb中,提供各种针对性的功能。如ajax实用插件、代码生成插件等。
EasyJWeb是基于java技术,用于实现企业级Java Web应用程序快速开发框架。框架由来自国内的EasyJF开源团队维护,是一个完全由来自的中国开源爱好者开发,文档及注释全部为中文的开源框架。
easyjweb-2.0 java 快速开发 easyjweb-2.0 java 快速开发 easyjweb-2.0 java 快速开发
EasyJWeb快速入门指南,EasyJWeb 是一个让你开发 Java Web 应用程序变得容易及高效的框架,他是一个基于请求转发模型的 MVC 框架。本章将主要介绍如何使用 EasyJWeb 写一个简单的应用程序。
EasyJWeb是基于java技术,用于企业级Java Web应用程序快速开发的MVC框架。框架设计构思来源于国内众多项目实践,框架的设计及实现借鉴当前主要流行的开源Web框架,如Rails、Struts、JSF、Tapestry等,吸取其优点及...
目前EasyJWeb已经采用国际水准的项目管理工具——Maven。Maven是一个功能强大的项目管理工具,在此处不做过多介绍,有兴趣的可以阅读Maven官方文档。 首先要确保你的计算机上已经安装了Maven2.0.5以上版本,如果还...
EasyJWeb框架0.7.0
配置easyjweb项目 ,要用到的细节,免于发生不必要的错误
easyjweb说明文档
可以让你easyjweb快速入门使用 EasyJWeb简介 EasyJWeb是基于java技术,能实现企业级Java Web应用程序快速开发的MVC框架。框架设计构思来源于国内众多项目实践,框架的设计及实现借鉴当前主要流行的开源Web框架...
一个轻量级的J2EE框架
类似于struts的开发框架,但开发效率却是struts的N倍。这是2010年01月15日发布出来的最新的版本。
EasyJWeb-Velocity脚本简明教程
很好的Easyjweb学习资料及源码 包括载MyEclipse中的配置,数据库的配置等.很详细!
描述了MVC设计模式和EasyJWeb框架的组成和工作原理,然后通过一个客户管理系统实例论述了基于MVC模式EasyJWeb框架的Web应用系统的实现方法。通过实例论述了基于EasyJWeb框架开发的Web应用系统可获得较高的效率性、可...
EasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——开始EasyJWeEasyJWeb实用开发指南——...
EasyJWeb综述 EasyJWeb是基于java技术,用于企业级...4、EasyJWeb插件体系,项目中的各种实用功能的扩展,可以灵活地通过基于插件的形式安装到EasyJWeb中,提供各种针对性的功能。如ajax实用插件、代码生成插件等。