Easy Web Development Framework for Java
eweb4j 是一款基于servlet/jdbc构建的轻量级web开发框架,它不仅融合了SSH的核心优点(全栈式),而且提供诸如模块化、热加载、多数据源、RESTful等非常吸引人的特性。
它小巧灵活,并且遵守约定优于配置的原则。使用它进行java web开发将让您品尝到轻松快乐的编程感受。
- 项目已经迁移到GitHub上 https://github.com/laiweiwei/eweb4j-framework
- 目前最新稳定版本1.9,下个版本是1.9.1
特性列表
- 超级轻量级,纯POJO式开发,无继承、无接口绑定
- 约定优于配置,配置覆盖约定
- Full-Stack
- RESTful (兼容JAX-RS 部分实现)
- MVC (URI-Mapping/上传下载/验证器/拦截器/JSP、Json、Xml、FreeMarker 视图 ...)
- Simple IOC (setter注入,构造器注入,@Ioc注解注入)
- ActiveRecord支持
- ORM (部分兼容JPA注解/生成建表脚本文件)也支持XML配置
- DAO (DAOFactory->InsertDAO/UpdateDAO/DeleteDAO/DivPageDAO/SearchDAO/DAO)
- JDBC模板
- 事务模板,可以嵌套事务
- 配置文件支持 (key-value)
- 国际化支持
- 日志支持
- MVC\ORM\IOC支持灵活开闭
- 同步发布一个在线演示项目SolidBase
- 有关SolidBase项目可以到此了解
- 最新的SolidBase项目源码在这里
- SolidBase会不断的修补bug,也会添加一些新特性,请关注
Quick Start
- 如果使用Maven的话,请在pom.xml添加下面这段依赖
<dependency><groupId>org.eweb4j</groupId><artifactId>eweb4j-all</artifactId><version>1.9</version></dependency>
- 在${WebRoot}/WEB-INF/web.xml中添加一个filter
<filter> <filter-name>eweb4j-filter</filter-name> <filter-class>org.eweb4j.mvc.EWebFilter</filter-class></filter><filter-mapping> <filter-name>eweb4j-filter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
/* 完全可以到处start,呵呵,不会重复启动的。 不过决定于你的配置。在start.xml里配置 */String err =EWeb4JConfig.start();if(err ==null){ //框架启动成功 DAOFactory.getXXXDAO.doXXX//可以做数据库操作 IOC.getBean("BEAN_ID")//可以通过IOC取出对象 Map message =Props.getMap("PROP_ID")//可以获取某个properties文件的键值对配置信息 message.get("key");//自动识别支持国际化 String val =Props.get("key")//全局的配置}else{ //框架启动失败,失败原因是:err}
package org.eweb4j.hello;publicclassHelloWorldAction{ publicString doHelloWorld(){ return"Hello World !"; }}
http://localhost:{port}/{your_context}/hello-world
HelloWorld!
社区支持
- QQ群:216125802
- 论坛:http://bbs.eweb4j.org
关于作者
- iteye博客:http://laiweiweihi.iteye.com
- 新浪微博: http://weibo.com/weiweimiss
- 邮箱:l.weiwei@163.com
- QQ: 493781187
开发指南
请移步wiki
版本记录
版本 1.9
- MVC控制器增加文件上传下载的支持,只需要声明File对象即可完成。
- ORM增加生成建表Sql文件的支持。无需额外配置工作。
- 几个DAO增加对Map的支持,使用map可以不需要写model类
- MVC增加8个默认action,约定视图和URI-Mapping
- 控制器属性若提供getter方法,则会作为视图渲染的一个数据模型。类似Struts2的ModelDriven但不需要继承来获得。
- 除了使用属性getter方法作为视图模型数据外,还可以在Action方法参数里声明一个没有任何注解的Map model,它可可以作为视图模型数据,往里面放数据就相当于request.setAttribute一样的效果。
- 改善Action跳转:return "action:xxx",之前是使用response.sendRedirect来实现的,但是这样的方式使得HTTP请求只能是GET方式的,如果要重定向到一个HTTP方法为POST或者PUT或者DELETE话,显然这样是无法满足需求的。于是,对 return "action:xxx"的处理方式改成:
return"action:xxx@PUT?name=weiwei&age=5";//符号@只能出现一次,框架不再采用response.sendRedirect的方式来处理,而是构建一个form表单:<form id="form_id" action="xxx" method="post"><input type="hidden" name="_method" value="PUT"/><input name="name" value="weiwei"/><input name="age" value="5"/><input type="submit"/></form> <script>document.getElementById('form_id').submit();</script>//然后使用response.getWriter().print打印上面这段内容,从而实现模拟客户端的请求,这样就支持GET之外的请求了,还可以带参数。 PS:如果指定的Action依然是GET的,则会采用redirect的方式执行,而不是表单的形式
doUri1BindIdAndNameJoinUri2AtPostOrGetOrPutOrDelete
eweb4j 是一款基于servlet/jdbc构建的轻量级web开发框架,它不仅融合了SSH的核心优点(全栈式),而且提供诸如模块化、热加载、多数据源、RESTful等非常吸引人的特性。
它小巧灵活,并且遵守约定优于配置的原则。使用它进行java web开发将让您品尝到轻松快乐的编程感受。