# 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