JomperMVC 0.2 beta.
1.0系统介绍
2.0开发指南
3.0配制文件祥解
4.0例子导读
5.0其他
1.0系统介绍
1.1 系统简图
1.2 简介
这是一个MVC开发框架,也希望这是一个很薄的层。所以JomperMVC的目标是精简。
proxy和filter是他的核心.filter就是真实意义上的插件。是系统组件任意插拔的关键。
model和business object放到IoC容器,便于解决依赖关系。
1.3 特色
● 灵活。插件任意插拔,你可以在配置文件里去掉所有插件,那么他这时只有一个前端控制器.但它一样能运转。
● 便利。利用IoC容器,让BO直接能处理到一个带有request里数据的model。(插件带来的功能)
● 开放。用户能在该框架基础上开发出自己的插件。利用插件执行的前后顺序,你能完成想要的功能。samples里带有3个系统插件作为范例。
1.4 开发环境
jdk 1.5
tomcat 5.5.12
1.5 下载
主页:http://code.google.com/p/jomperxo/
下载地址:http://code.google.com/p/jomperxo/downloads/list
svn地址:http://jomperxo.googlecode.com/svn/trunk/JomperMVC
建议从svn地址得到最新的src以及文档.
2.0开发指南
2.1 基于JomperMVC开发
2.1.1 了解org.jomper.mvc.action.ServletAction
● ServletActionImpl 是你的action,相当于struts的Action。在这里它是个接口。在ServletActionImpl里完成你的主要业务并返回一个jsp url,当然是可以在某些情况下返回null,例如xml,xslt transform等...
● request ServletActionImpl mapping 是访问这个impl的途径。(mapping name的定义见3.0 配置文件祥解)
● ServletAction 能访问ServletContext对象。
2.2 插件开发
2.2.1 了解org.jomper.mvc.filter.ActionFilter
● filter位于org.jomper.mvc.action.ServletAction前后。
● 系统组件和模块组件都以filter的形式存在并由org.jomper.mvc.filter.JomperFilterChain触发。
● 组件能访问ServletContext对象。
● filter能设置范围 (mapping name的定义见3.0 配置文件祥解)。
● 写组件也就是filter,有入侵。需要在filter主方法的最后加上chain.doChain(request, response, servletContext);完成filter的传递。
● filter能设定位于org.jomper.mvc.action.ServletAction之前或者之后触发。
2.2.2 系统插件介绍
2.2.2.1 org.jomper.mvc.filter.impl.DataWrapperFilter
● 类似于struts的form,这个插件负责把request里的parameters 封装到action link过的model里,在module.xml里能link任意个model到action。对应约束是<input name和model.Field的一致。
● 如果在配置文件里 model-name='map'则页面的parameters被封装到map里。因为无论是model还是map都能很方便的在jsp里用EL输出。
2.2.2.2 了解org.jomper.mvc.filter.impl.BusinessObjectInvocationFilter
● 这个插件的功能是辅助org.jomper.mvc.util.BOInvocation,当用BOInvocation调用一个使用到IoC容器里model的BO时(例如org.jomper.mvc.bo.BOTest),替换DataWrapperFilter处理过的model到容器.确保这个BO处理的是一个有数据的model.
● 它需要和DataWrapperFilter协同工作,且要在DataWrapperFilter之后注册.
2.2.2.3 了解org.jomper.mvc.filter.impl.XMLTransformFilter
● 这个插件的功能是把xml和xslt转换成html输出.
● 因为需要截获httpresponse的输出流,它是个后置filter. <filter precedence="after"...
● 需要在action里设置xml&xslt的路径,并把返回置null.(见例子:org.jomper.mvc.action.impl.XMLTransformAction)
3.0配置文件祥解
3.1 web.xml配置
留给用户自定义的地方有
<servlet>
<servlet-name>MVConfigurator</servlet-name>
<init-param>
<param-name>configFile</param-name>
<param-value>WEB-INF/mvc.xml</param-value>
<!-- 根据需要设定mvc.xml的位置以及名字 -->
...
<servlet>
<servlet-name>ServletController</servlet-name>
...
<init-param>
<param-name>actionExtension</param-name>
<param-value>.jo</param-value>
<!-- .jo可以改成.do或者其它 -->
...
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
<!-- UTF-8可以改成你使用的编码 -->
...
<servlet-mapping>
<servlet-name>ServletController</servlet-name>
<url-pattern>*.jo</url-pattern>
<!-- .jo可以改成.do或者其它,但是必须和actionExtension的value保持一致 -->
3.2 mvc.xml配置
mvc.xml是核心配置文件,负责组件、模块配置文件、业务对象配置文件的注册。
<filter class="org.jomper.mvc.filter.impl.XMLTransformFilter" precedence="after" path="xml/"/>
<!-- filter是插件配置 class="这里写filter类名" precedence="filter优先级分prepare和after" path="filter的过滤范围,与action mapping对应,例如 'aa/'过滤 mapping为'aa/*.jo'及以下的所有action" -->
<module name="testModule" path="moduletest\mvc_module.xml" />
<!-- 模块配置 name="模块名" path="模块路径,'moduletest\mvc_module.xml'表示root\moduletest\mvc_module.xml"-->
<business-object name="boTest" path="moduletest\businessobject.xml"/>
<!-- BO配置 name="BO模块名" path="模块路径,'moduletest\businessobject.xml'表示root\moduletest\businessobject.xml"-->
3.3 mvc_module.xml配置
mvc_module.xml可以任意起名字,只要在mvc.xml就行。它负责model注册、action注册、把model link到action。
<model name="testModel2" class="org.jomper.mvc.model.TestModel2"/>
<!-- modelname不能重复,分散在不同模块配置文件的modelname也不能重复 -->
<action name="bb/test" class="org.jomper.mvc.action.impl.TestAction"/>
<!-- actionname不能重复,分散在不同模块配置文件的actionname也不能重复,class="action类名" -->
<link-model action-name="test" model-name="testModel2"/>
<!-- 可以将n个任意的model,link到action -->
[color=blue]3.4 bsinessobject.xml配置[/color]
<component name="botest" class="org.jomper.mvc.bo.BOTest"/>
<!-- boname不能重复,分散在不同模块配置文件的boname也不能重复,class="bo类名" -->
4.0例子导读
4.1 运行samples
4.1.1把samples下的project 放到服务器下
4.1.2把lib里的jar放到 WEB-INF\lib下
4.1.3把bin里的JomperMVC_0.2.jar 放到 WEB-INF\lib下
4.1.4根据 JomperMVC\moudletest\mvc_module.xml 的配置
运行mapping http://ip:port/JomperMVC/ 看到欢迎界面,表示项目启动成功.
样例运行mapping http://ip:port/JomperMVC/bb/test.jo
4.2 例子解析
4.2.1 action mapping例子
在IE输入 http://ip:port/JomperMVC/bb/test.jo
4.2.2 model数据装载例子
在你提交数据之后DataWrapperFilter自动把request里和model匹配的参数装载到model.model就是在mvc_module.xml里link的两个.
这时在org.jomper.mvc.action.impl.testAction2里
List models = (List)request.getAttribute(ServletConstants.MODELS);就能得到装载了数据的model.
提交数据到http://ip:port/JomperMVC/aa/test2.jo,立即能看到效果。
4.2.3 BOInvocation例子
你能用BOInvocation.invoke(servletContext, "botest", "changeTestField_2", c);来直接调用org.jomper.mvc.bo.BOTest,
当然BOTest的依赖类org.jomper.mvc.model.TestModel:o已经被BusinessObjectInvocationFilter完成model替换。
BOTest 能处理一个装载了数据的model.
这时你会发现下次调用该model时,还是上次的数据。你可以执行org.jomper.mvc.container.ContainerReset.execute(); 来重置model.
4.2.4 filter组件例子
"PreTestFilter is executed"等类似输出, 测试filter是否被执行。
4.2.5 XMLTransform例子
在IE输入 http://ip:port/JomperMVC/xml/xmltest.jo
能看到一个分页的sample.
4.2.6 jsp显示数据例子
root/moduletest/TestAction.jsp
5.0 其他
5.1 ~
下面准备写个避免重复提交的filter.
权限控制的filter
model cache池...
5.2 写在后面
这次的0.2 beta版本,开发时间比较短,肯定还有很多时间和能力导致的bug.需要大家的支持,意见建议可以通过qq:298045517和jomper.cn@gmail.com和我联系.
程序对异常的处理非常简陋,将在接下来重点完善。
需要大家批评、指正。
- 大小: 555.7 KB
分享到:
相关推荐
Zend Framework 2.0.0 beta 版本是该框架的重要里程碑,它引入了许多新特性和改进,旨在提升开发效率和应用性能。 1. **组件化设计**: Zend Framework 2.0 强调了组件化设计,允许开发人员仅使用他们需要的部分,...
* 核心框架:Spring Framework 4.2.7 * 安全框架: * 视图框架:Spring MVC 4.2.7 * 服务端验证: * 布局框架: * 工作流引擎: * 任务调度: * 持久层框架:JDBC * 数据库连接池:c3p0 * 缓存框架: * 日志管理:...
.NET Framework 4.0 Beta 1是微软发布的一个重要的软件开发平台,用于构建、运行基于Windows操作系统的应用程序。这个版本的.NET Framework引入了许多新特性和改进,旨在提高开发者的工作效率和应用程序的性能。以下...
1. 易于使用: Robot Framework 采用表格式语法,统一测试用例格式,易于学习和使用。 2. 重用性好:可以利用现有关键字来组合新关键字,提高测试效率。 3. 支持变量: Robot Framework 支持变量,方便测试用例的...
框架使用场景:OA、ERP、BPM、CRM、WMS、TMS、MIS等业务管理系统及后台系统 框架功能: 1.系统管理 机构管理、角色管理、岗位管理、用户管理、数据字典、区域管理 2.权限管理 系统菜单、系统按钮、角色权限分配 3....
框架相关源码,如:springframework,springboot,dubbo等
* 核心框架:Spring Framework 4.2.7 * 安全框架: * 视图框架:Spring MVC 4.2.7 * 服务端验证: * 布局框架: * 工作流引擎: * 任务调度: * 持久层框架:MyBatis 3.4.4 * 数据库连接池:c3p0 * 缓存框架: * ...
自动化测试:Robot Framework框架实用干货技巧 在自动化测试领域中,Robot ...如果你想学习更多关于Robot Framework框架的使用技巧,可以关注一下作者之前出版的《自动化测试实战宝典:从小工到专家》这本书。
* 核心框架:Spring Framework 4.2.7 * 安全框架: * 视图框架:Spring MVC 4.2.7 * 服务端验证: * 布局框架: * 工作流引擎: * 任务调度: * 持久层框架:Hibernate 5.2.10.Final * 数据库连接池:c3p0 * 缓存...
ZK框架 : Ajax开发实战1.rar
Python Framework 0.2.137 是一个在Python生态系统中的软件框架,可以从PyPI(Python Package Index)官网下载。PyPI是Python开发者发布自己软件包的官方平台,供全球Python用户安装和使用。这个0.2.137版本的框架...
核心框架:Spring Framework 视图框架:Spring MVC 持久层框架:MyBatis 3 JS框架:jQuery 富文本:kindeditor 开发环境: 建议开发者使用以下环境,这样避免版本带来的问题 IDE:eclipse,idea DB:Mysql5.5 JDK:JAVA...
核心框架:Spring Framework 4.3.5 安全框架:Apache Shiro 1.3.2 视图框架:Spring MVC 4.3.5 任务调度:Spring + Quartz 2.2.3 持久层框架:MyBatis 3.4.2 + Mybatis-plus 2.0.1 数据库连接池:Alibaba Druid 1.0 ...
终极游戏数据框架
Spring 是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。 Spring 使用的是基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。 可以解决企业应用开发的复杂性,适用于任何Java应用。
通过学习VS2008视频教程5,你将深入了解.NET Framework 3.5的新特性,并能熟练运用到实际项目开发中,提升开发效率和软件质量。在实践中不断探索和掌握这些技术,将有助于你成为一名出色的.NET开发者。
框架使用场景:OA、ERP、BPM、CRM、WMS、TMS、MIS等业务管理系统及后台系统 框架主要运用技术: 1、前端技术 JS框架:jquery-2.1.1、Bootstrap.js、JQuery UI CSS框架:Bootstrap v3.3.4(稳定是后台,UI方面根据...
本文将详细探讨标题为"ant-robotframework-0.2.jar.zip"的压缩包文件,以及其包含的"ant-robotframework-0.2.jar"和"ant.license.txt"两个子文件,深入解析它们的功能、用途和使用方法。 首先,Apache Ant是一个...
《王家林的Android软硬整合设计与框架揭秘:HAL&Framework; &Native; Service &App;&Browser;架构设计与实战开发》 本课程由资深IT专家王家林主讲,旨在深度解析Android软硬整合的技术核心,涵盖HAL、Framework、...
核心框架:Spring Framework 安全框架:Apache Shiro 视图框架:Spring MVC 服务端验证:Blade Validator 任务调度:Spring Task 持久层框架:beetlsql 模板引擎:beetl 数据库连接池:Alibaba Druid 缓存...