# etmvc **Repository Path**: jincai_admin/etmvc ## Basic Information - **Project Name**: etmvc - **Description**: 一个简易高效的web开发框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-13 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # etmvc 一个简易高效的web开发框架 etmvc是基于Java技术,为WEB开发提供的一套简易MVC框架。 简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。 * 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 * 约定优于配置,免除开发过程中的配置之苦 * 具有良好的自我扩展能力 * 易于同spring等IOC框架进行集成 * 从实用的角度出发,精益求精,从实际开发经验中提取有用的模型 * 设计专门同EXTJS等框架进行整合的机制 ## 下载 [etmvc-1.0.1-bin.rar](http://shuzheng.github.io/etmvc/Download/etmvc-1.0.1-bin.rar) **SHA1 Checksum:**2188ae15741e4148423d04626f2589b312c3698a ## 使用教程 * [etmvc框架介绍](https://github.com/shuzheng/etmvc/wiki/etmvc%E6%A1%86%E6%9E%B6%E4%BB%8B%E7%BB%8D) * [Hello,World经典示例](https://github.com/shuzheng/etmvc/wiki/Hello,World%E7%BB%8F%E5%85%B8%E7%A4%BA%E4%BE%8B) * [关于etmvc的配置](https://github.com/shuzheng/etmvc/wiki/%E5%85%B3%E4%BA%8Eetmvc%E7%9A%84%E9%85%8D%E7%BD%AE) * [理解并使用控制器](https://github.com/shuzheng/etmvc/wiki/%E7%90%86%E8%A7%A3%E5%B9%B6%E4%BD%BF%E7%94%A8%E6%8E%A7%E5%88%B6%E5%99%A8) * [Action方法和控制器环境](https://github.com/shuzheng/etmvc/wiki/Action%E6%96%B9%E6%B3%95%E5%92%8C%E6%8E%A7%E5%88%B6%E5%99%A8%E7%8E%AF%E5%A2%83) * [关于etmvc的视图](https://github.com/shuzheng/etmvc/wiki/%E5%85%B3%E4%BA%8Eetmvc%E7%9A%84%E8%A7%86%E5%9B%BE) * [扩展etmvc的视图](https://github.com/shuzheng/etmvc/wiki/%E6%89%A9%E5%B1%95etmvc%E7%9A%84%E8%A7%86%E5%9B%BE) * [利用etmvc中的模型绑定简化Action方法的编写](https://github.com/shuzheng/etmvc/wiki/%E5%88%A9%E7%94%A8etmvc%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9E%8B%E7%BB%91%E5%AE%9A%E7%AE%80%E5%8C%96Action%E6%96%B9%E6%B3%95%E7%9A%84%E7%BC%96%E5%86%99) * [ORM-ActiveRecord基础](https://github.com/shuzheng/etmvc/wiki/ORM-ActiveRecord%E5%9F%BA%E7%A1%80) * [利用etmvc编写用户管理小例子](https://github.com/shuzheng/etmvc/wiki/%E5%88%A9%E7%94%A8etmvc%E7%BC%96%E5%86%99%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86%E5%B0%8F%E4%BE%8B%E5%AD%90) * [ActiveRecord中同时访问多个数据库](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E5%90%8C%E6%97%B6%E8%AE%BF%E9%97%AE%E5%A4%9A%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%BA%93) * [ActiveRecord中的关联](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E7%9A%84%E5%85%B3%E8%81%94) * [etmvc中进行上传和下载](https://github.com/shuzheng/etmvc/wiki/etmvc%E4%B8%AD%E8%BF%9B%E8%A1%8C%E4%B8%8A%E4%BC%A0%E5%92%8C%E4%B8%8B%E8%BD%BD) * [etmvc和extjs结合分页例子](https://github.com/shuzheng/etmvc/wiki/etmvc%E5%92%8Cextjs%E7%BB%93%E5%90%88%E5%88%86%E9%A1%B5%E4%BE%8B%E5%AD%90) * [etmvc的过滤器基础](https://github.com/shuzheng/etmvc/wiki/etmvc%E7%9A%84%E8%BF%87%E6%BB%A4%E5%99%A8%E5%9F%BA%E7%A1%80) * [ActiveRecord中集成spring](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E9%9B%86%E6%88%90spring) * [ActiveRecord中使用事务](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%8B%E5%8A%A1) * [etmvc中使用环绕过滤器](https://github.com/shuzheng/etmvc/wiki/etmvc%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%8E%AF%E7%BB%95%E8%BF%87%E6%BB%A4%E5%99%A8) * [ActiveRecord中的数据类型映射](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%98%A0%E5%B0%84) * [ActiveRecord中的回调方法](https://github.com/shuzheng/etmvc/wiki/ActiveRecord%E4%B8%AD%E7%9A%84%E5%9B%9E%E8%B0%83%E6%96%B9%E6%B3%95) * [etmvc框架中的插件](https://github.com/shuzheng/etmvc/wiki/etmvc%E6%A1%86%E6%9E%B6%E4%B8%AD%E7%9A%84%E6%8F%92%E4%BB%B6) * [etmvc框架对URL路由的支持](https://github.com/shuzheng/etmvc/wiki/etmvc%E6%A1%86%E6%9E%B6%E5%AF%B9URL%E8%B7%AF%E7%94%B1%E7%9A%84%E6%94%AF%E6%8C%81) * [etmvc中使用环绕过滤器处理异常](https://github.com/shuzheng/etmvc/wiki/etmvc%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%8E%AF%E7%BB%95%E8%BF%87%E6%BB%A4%E5%99%A8%E5%A4%84%E7%90%86%E5%BC%82%E5%B8%B8) * [etmvc中的国际化处理](https://github.com/shuzheng/etmvc/wiki/etmvc%E4%B8%AD%E7%9A%84%E5%9B%BD%E9%99%85%E5%8C%96%E5%A4%84%E7%90%86) * [etmvc框架集成spring](https://github.com/shuzheng/etmvc/wiki/etmvc%E6%A1%86%E6%9E%B6%E9%9B%86%E6%88%90spring) ## 快速开始 **etmvc框架的组成** etmvc框架包括mvc和一个可选的orm实现,可选的orm实现是一个ActiveRecord框架,独立于mvc,可以在非WEB的应用程序中使用。 **etmvc框架的安装** 1. 获取最新的框架:从本站获取最新的etmvc框架。 1. 建立WEB项目,将下载的压缩文件解压至项目的/WEB-INF/lib目录中。 1. 配置数据库,在/WEB-INF/classes目录中建立数据库连接配置文件activerecord.properties, 配置示例: ```java domain_base_class=com.et.ar.ActiveRecordBase com.et.ar.ActiveRecordBase.driver_class=com.mysql.jdbc.Driver com.et.ar.ActiveRecordBase.url=jdbc:mysql://localhost/mydb com.et.ar.ActiveRecordBase.username=root com.et.ar.ActiveRecordBase.password=soft123456 com.et.ar.ActiveRecordBase.pool_size=2 ``` 1. 配置/WEB-INF/web.xml,添加一个过滤器,配置示例: ```xml etmvc com.et.mvc.DispatcherFilter controllerBasePackage controllers viewBasePath /views etmvc /* ``` 1. 建立保存视图模板的目录/views。 **etmvc框架的基本概念** 1. controller:控制器是属于请求范围的,用于处理请求,创建或者准备响应。每次请求都会创建一个控制器实例,控制器的类名必须以Controller结尾,一般整个应用程序会创建一个控制器的基类 1. ApplicationController,然后具体的其它控制器再继承之。 1. action:每个URL操作将映射到一个action上,一个action是一个控制器的方法,一个控制器可以管理彼此相关的多个action。一个控制器中标准的action命名参考: * index: 默认的动作 * show:显示动作 * create:新建动作 * save:保存动作 * edit:修改动作 * update:更新动作 * destroy:删除动作 1. model:模型,是一个数据实体,将对应到具体的数据表中,这种映射关系是通过ActiveRecord实现的。所以数据表中的字段名就是模型对象中的属性名,不再需要用XML配置描述了。 1. view:视图,etmvc支持多种视图,甚至一个action多视图,最常用的视图是JspView,在AJAX应用中是JsonView,下载处理二进制数据时是BinaryView,等等。 **etmvc实现代码** 接下来,我们开始编写控制器HelloController,一般我们会编写控制器基类ApplicationController,我们的HelloController会继承它。注意到,控制器的包名是controllers,这就是前面配置中的controllerBasePackage配置值。 ```java package controllers; import com.et.mvc.Controller; public class ApplicationController extends Controller{ } ``` ```java package controllers; import com.et.mvc.TextView; public class HelloController extends ApplicationController{ public TextView say(){ return new TextView("hello,world"); } } ``` 至此,我们的Hello,World程序编写完毕,部署后在浏览器地址栏输入http://localhost:8080/helloworld/hello/say,将会输出hello,world字样。 ## 声明 首先感谢作者`stworthy`分享的etmvc项目,由于作者已停止更新etmvc且托管的Google Code要于2016年1月25日关闭,故本人将项目转过来接手并加以维护并更新。 ## License LGPL