- 浏览: 116833 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
czqjay:
news/index/{pageNum}/{author} { ...
来谈谈REST、RBAC下的URL权限控制 -
csumck:
这也有一个在线时序图工具 http://echoma.git ...
推荐一个不错的在线“画”时序图的软件(通过文字生成图片) -
cpop:
...
如何将自己的jar包Release到Maven中央仓库中 -
yangzai911:
如果 accept-language中有值,那么也是默认取第一 ...
Play framework 国际化 -
wangyong8861850:
[color=darkred][/color][size=x- ...
EWeb4J 1.9.1 新版本发布 基于Servlet/JDBC的轻量级web开发框架
毕业了。高兴一下,哈。
一直以来,eweb4j framework新版本都没有发布,因为忙工作、忙毕业、忙答辩。
只好在有空的时候为框架添加新特性、重构旧代码来弥补了。
写本文之前,修复了一些小bug,增加了两个特性:文件上传下载、生成建表脚本。
1.文件上传下载:
文件上传下载?这要涉及到文件IO流吧。或者,用第三方组件?例如Apache 的common-upload, 不不不,咱都不用,咱直接在控制器里声明一个 File 对象就行了。什么?这么简单?先看看代码吧~
PS:注意表单文件input的name要和控制器声明的File对象名一致(实质上是和setter方法名相关)。另外注意 enctype
就这么简单,在一个Action方法执行前,框架会自动接收所有的文件上传请求,并将其作为一个临时文件保存到临时目录里,然后Action方法执行之后,框架会自动清空这些临时文件。因此,我们只要在Action方法体中,将临时文件拷贝到另外一个目录即可。下面有一个更加全面的例子:
//文件上传
upload.html
文件上传这么简单,我想聪明的你应该猜到,文件下载大概怎么做了吧!没错,仅需要在Action方法里返回一个File对象即可!如果有多个文件,那么请返回文件数组吧!框架会自动将其打包成zip。
PS:框架采用标准的HTTP文件下载的方式进行响应,客户端可以自己修改文件下载保存名字。
2.生成建表脚本:
首先,编写模型类
然后执行这样一句代码:
执行之后会生成 ${ClassPath}/conf/mysql-create.sql文件,内容如下:
可以看到,多对多关系中的第三方表也会自动生成。
谢谢。
PS:如果希望获取EWeb4J最新版本,直接使用Maven添加依赖,版本号为:1.9-SNAPSHOT即可。另外还可以通过项目主页源码svn签出也行。
一直以来,eweb4j framework新版本都没有发布,因为忙工作、忙毕业、忙答辩。
只好在有空的时候为框架添加新特性、重构旧代码来弥补了。
写本文之前,修复了一些小bug,增加了两个特性:文件上传下载、生成建表脚本。
1.文件上传下载:
文件上传下载?这要涉及到文件IO流吧。或者,用第三方组件?例如Apache 的common-upload, 不不不,咱都不用,咱直接在控制器里声明一个 File 对象就行了。什么?这么简单?先看看代码吧~
public class UploadControl{ private File file; public String doAtPost(){ FileUtil.copy(file, new File("c://"+file.getName())); } public void setFile(File file){ this.file = file; } }
upload.html <form action="upload" method="POST" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="上传" /> </form>
PS:注意表单文件input的name要和控制器声明的File对象名一致(实质上是和setter方法名相关)。另外注意 enctype
就这么简单,在一个Action方法执行前,框架会自动接收所有的文件上传请求,并将其作为一个临时文件保存到临时目录里,然后Action方法执行之后,框架会自动清空这些临时文件。因此,我们只要在Action方法体中,将临时文件拷贝到另外一个目录即可。下面有一个更加全面的例子:
//文件上传
public class UploadControl { final static String path = ConfigConstant.ROOT_PATH + "/WEB-INF/uploads/"; private File tmpFile1; private UploadFile tmpFile2; private File[] tmpFile3; private UploadFile[] tmpFile4; public String doAtGet() { return "fmt:Upload/upload.html"; } public String doAtPost() { //为了查看临时文件,当前线程睡眠10秒钟 //Thread.sleep(10*1000); FileUtil.copy(tmpFile1, new File(path + tmpFile1.getName())); FileUtil.copy(tmpFile2.getTmpFile(), new File(path + tmpFile2.getFileName())); for (File f : tmpFile3) FileUtil.copy(f, new File(path + f.getName())); for (UploadFile f : tmpFile4) FileUtil.copy(f.getTmpFile(), new File(path + f.getFileName())); return StringUtil.getNowTime()+"上传成功!" ; } //别忘记setter方法哦 }
upload.html
<h1>EWeb4J Framework File Upload Demo</h1> <form action="${BaseURL}upload" method="post" enctype="multipart/form-data"> <label>tmpFile1:</label><input type="file" name="tmpFile1" /> <label>tmpFile2:</label><input type="file" name="tmpFile2" /> <label>tmpFile3:</label><input type="file" name="tmpFile3" /> <label>tmpFile3:</label><input type="file" name="tmpFile3" /> <label>tmpFile4:</label><input type="file" name="tmpFile4" /> <label>tmpFile4:</label><input type="file" name="tmpFile4" /> <input type="submit" value="上传" /> </form>
文件上传这么简单,我想聪明的你应该猜到,文件下载大概怎么做了吧!没错,仅需要在Action方法里返回一个File对象即可!如果有多个文件,那么请返回文件数组吧!框架会自动将其打包成zip。
public class DownloadControl { final static String path = ConfigConstant.ROOT_PATH + "/WEB-INF/uploads/"; final File file = new File(path+"just4download.jpg"); public File doAtGet(){ return file; } public File[] doArrayAtGet(){ return new File[]{file}; } }
PS:框架采用标准的HTTP文件下载的方式进行响应,客户端可以自己修改文件下载保存名字。
response.setContentType("application/zip"); response.addHeader("Content-Disposition", "attachment; filename=xxx");
2.生成建表脚本:
首先,编写模型类
/** * 宠物 模型 * @author weiwei * */ @Entity @Table(name="t_pet") public class Pet extends Model{ public final static Pet inst = new Pet(); /* 宠物名字 */ @Column(unique=true) private String name; /* 宠物性别 1公 0母*/ private boolean gender; /* 物种 */ private String species; /* 宠物价格 */ private float price; /* 宠物年龄 单位 月*/ private int age; /* 是否已上架 */ @Column(name="is_up") private boolean isUp; /* 所属主人 */ @Column(nullable=false) @ManyToOne private Member master; /* 所属分类 */ @ManyToOne private Category category; @Transient public long count; //setter and getter } /** * 购物车 模型 * * @author weiwei * */ @Entity @Table(name = "t_cart") public class Cart extends Model { @ManyToMany @JoinTable(name = "t_cart_pet", joinColumns = @JoinColumn(name = "cart_id"), inverseJoinColumns = @JoinColumn(name = "pet_id")) private List<Pet> pets = new ArrayList<Pet>(); @Column(nullable=false) private String description; //setter and getter }
然后执行这样一句代码:
public static void main(String[] args){ String CONF_DIR = FileUtil.getTopClassPath(EWeb4JConfig.class)+"/conf/"; EWeb4JConfig.setCONFIG_BASE_PATH(CONF_DIR); EWeb4JConfig.start("start.xml"); /* 框架根据模型类生成数据库pet_store_db建表脚本文件 */ Model2Table.write("pet_store_db"); }
执行之后会生成 ${ClassPath}/conf/mysql-create.sql文件,内容如下:
DROP DATABASE IF EXISTS pet_store_db; CREATE DATABASE pet_store_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; SET FOREIGN_KEY_CHECKS=0; USE pet_store_db; -- ---------------------------- -- Created by EWeb4J Framework 1.9-SNAPSHOT -- at 2012-06-09 11:59:53 -- Models of models.Pet -- Records of t_pet -- ---------------------------- DROP TABLE IF EXISTS t_pet; CREATE TABLE t_pet( id bigint (20) NOT NULL AUTO_INCREMENT , name varchar (255) NOT NULL , gender boolean NOT NULL , species varchar (255) NOT NULL , price float (8) NOT NULL , age tinyint (4) NOT NULL , is_up boolean NOT NULL , master_id bigint (20) , category_id bigint (20) NOT NULL , UNIQUE KEY name (name), PRIMARY KEY (id), KEY master_id (master_id), CONSTRAINT master_id FOREIGN KEY (master_id) REFERENCES t_member (id), KEY category_id (category_id), CONSTRAINT category_id FOREIGN KEY (category_id) REFERENCES t_category (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Created by EWeb4J Framework 1.9-SNAPSHOT -- at 2012-06-09 11:59:54 -- Models of models.Cart -- Records of t_cart -- ---------------------------- DROP TABLE IF EXISTS t_cart; CREATE TABLE t_cart( id bigint (20) NOT NULL AUTO_INCREMENT , description varchar (255) , PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Created by EWeb4J Framework 1.9-SNAPSHOT -- at 2012-06-09 11:59:54 -- Records of t_cart_pet -- ---------------------------- DROP TABLE IF EXISTS t_cart_pet; CREATE TABLE t_cart_pet( id bigint (20) NOT NULL AUTO_INCREMENT, cart_id bigint (20) , pet_id bigint (20) , PRIMARY KEY (id), KEY cart_id (cart_id), CONSTRAINT t_cart_pet_cart_id FOREIGN KEY (cart_id) REFERENCES t_cart (id), KEY pet_id (pet_id), CONSTRAINT t_cart_pet_pet_id FOREIGN KEY (pet_id) REFERENCES t_pet (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
可以看到,多对多关系中的第三方表也会自动生成。
谢谢。
PS:如果希望获取EWeb4J最新版本,直接使用Maven添加依赖,版本号为:1.9-SNAPSHOT即可。另外还可以通过项目主页源码svn签出也行。
发表评论
-
EWeb4J 1.9.1 新版本发布 基于Servlet/JDBC的轻量级web开发框架
2012-11-28 22:08 2850EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量 ... -
EWeb4J-SolidBase 发布新版本
2012-07-08 12:41 2153SolidBase项目是采用 DWZ + EWeb4J 开发的 ... -
EWeb4J 框架迁移到 GitHub
2012-07-05 10:02 1894EWeb4J 框架: https://github.com/ ... -
发布一个EWeb4J-1.9的Demo
2012-07-04 16:38 26EWeb4J-1.9框架发布在即,在此之前,发布一个小Demo ... -
SolidBase 二次开发 GIS 截图
2012-05-07 16:12 1934有位大哥哥使用 EWeb4J 的项目 SolidBase 作为 ... -
EWeb4J 国际化支持出炉啦(有源码看)
2012-05-06 15:31 2076很荣幸也很开心地公布,EWeb4J 支持国际化了。并且有着它独 ... -
Play framework 国际化
2012-05-03 20:04 4335Play的国际化操作还是非常简单的。大概分为四步: 1. ... -
eweb4j在线演示程序更新
2012-04-25 09:25 2117访问地址:SolidBase 增加菜单显示权限 ... -
EWeb4J-1.9-继续改善ActiveRecord支持【级联】操作
2012-04-17 20:58 1495老习惯:约定优于配置 ... -
EWeb4J-1.9-控制器更新
2012-04-13 16:56 1448主要增加以下更新: 验证器 声明式事务 7个默认Acti ... -
eweb4j-1.9-支持ActiveRecord模式
2012-04-06 20:46 1622@Entity @Table(name="t_ ... -
(不断更新)EWeb4J-1.9-SNAPSHOT最近进程
2012-03-28 23:33 1818经过奋战,终于有个稳定点的SNAPSHOT版本咯。 较之上个 ... -
eweb4j演示项目-SolidBase增加对菜单显隐的权限控制
2012-03-28 14:41 1922昨晚捣鼓到两点多才弄好,今天整理了下,大概把菜单权限控制做好了 ... -
(下篇)单例POJO实现CRUD+分页+搜索Demo
2012-03-23 23:14 2本篇程序特点: POJO式的控制器,无需继承、无需实 ... -
体验快速开发2:单例POJO实现CRUD+分页+搜索Demo
2012-03-23 22:54 29程序特点: POJO式的控制器,无需继承、无需实现接 ... -
体验快速开发:只有一个控制类实现的CRUD+分页+搜索Demo
2012-03-22 22:17 182╮(╯▽╰)╭,本来不想谈什么快速开发的,但是最近老是有人拿什 ... -
如何将自己的jar包Release到Maven中央仓库中
2012-03-20 17:17 4450PS:真正要发布到Maven中央库中是首先需要到https:/ ... -
EWeb4J-1.8.6 发布,同时带来一个演示项目
2012-03-08 17:44 2997距离上次1.7的发布已经过去5个月了。首先值得高兴的是EW ... -
eweb4j加进到Maven中央仓库啦,先发个快照版
2012-02-25 23:54 1707挺开心的。 先是注册好了 eweb4j.org。 然后是sv ... -
eweb restful需要考虑的,谨记。
2012-02-20 19:25 1159框架是否遵守一条HTTP消息并非仅仅包含一个URI的原则?也 ...
相关推荐
eweb4j是一个Java开发框架,它专注于提供高效、轻量级且易于使用的Web应用程序解决方案。这个框架的设计理念是简化开发流程,提高开发效率,同时保持代码的清晰性和可维护性。下面我们将深入探讨eweb4j框架的核心...
超级方便的文件上传下载 超级方便的视图数据传递 充血模型 声明式事务、事务模板、事务嵌套 丰富的DAO封装类 多数据源、表关联 简单的 IOC 容器 MVC、ORM、IOC 可控开关 键值对配置文件支持 国际化支持 让我们看看它...
`eweb4j`集成了常见的日志框架,如Log4j或SLF4J,方便开发者记录运行时信息,以便于调试和监控。 **依赖注入** 依赖注入(Dependency Injection,DI)是`eweb4j`中的一种重要设计原则,它通过容器管理对象的生命...
Rockwell 1756-Eweb模块
在eweb编辑器中,通常用户会使用内置的功能来处理数据库连接和页面动态生成。以下是一些关于如何在eweb编辑器中进行此类操作的详细步骤和相关知识点: 1. **文件扩展名更改**: - 首先,打开eweb编辑器,找到需要...
**下载链接**: [http://code.google.com/p/eweb4j/downloads/list](http://code.google.com/p/eweb4j/downloads/list) EWeb4J是一款专为快速构建企业级Web应用而设计的开源框架。它提供了一种声明式的编程模型,...
EWeb通常支持文件管理功能,允许用户在编辑器内部浏览、上传、下载和管理文件。理解如何有效地组织和操作项目文件对于保持代码的整洁性和可维护性至关重要。 六、代码版本控制 作为一个现代的在线编辑器,EWeb可能...
1756-EWEB
eWeb editor编辑器文件,说明,使用方法:将解压后的editor文件夹拷贝到项目根目录下,在需要的页面中加入以下内容: 办事内容:</font></td> ;style=s_blue" frameborder="0" width="99%" ...
4. **图片和媒体管理**: 内置的图片和多媒体管理功能,让用户能够方便地上传、管理和插入图片、音频、视频,同时支持在线编辑图片,如裁剪、缩放等。 5. **表单设计**: EWeb编辑器提供了强大的表单设计工具,...
eWeb7.3.0商业版提供了安全的文件上传机制,确保用户上传的文件不被非法访问或篡改。同时,编辑器还支持与多种后端内容管理系统(CMS)集成,如WordPress、Joomla等,确保数据的一致性和安全性。 总而言之,eWeb...
通过分析www.pudn.com.txt和downcode.com这两个文件名,我们可以推测这些文件可能包含了eWeb Editor飞鱼修改版的详细文档、使用教程或者是下载代码的网址。其中,www.pudn.com是一个知名的编程资源网站,可能提供了...
ASP常用的后台编辑器,带图片上传功能 调用方法如下例子: <textarea name="nr" ROWS="20" COLS="70">%=Server.HTMLEncode(rs("nr"))%></textarea> <iframe ID="eWebEditor1" src="../eWebEditor/...
多文件的上载 E. 文本型文件(.php, .html, .txt 等)的编辑 F. 图片及 falsh 文件的即时浏览 G. 文件下载 新增功能: H.多媒体编缉文件(绑定EWEB、FCKeditor) I.非空目录删除(带有子目录或文件) ...
**eweb网页编辑器**是一款专业且用户友好的软件,专为论坛和公告发布等应用场景设计。它将复杂的网页制作过程简化,使非专业程序员也能轻松创建和编辑网页内容。这款编辑器集成了多种功能,旨在提高用户在互联网上的...
【正版eweb控件_eWebEditor_V3.80_JSP】是一款专为JSP(Java Server Pages)开发的富文本编辑器控件,适用于构建网站后台内容管理系统。eWebEditor_V3.80是其特定版本,提供了一种直观且功能强大的方式,让用户在...
DreamEdit.exe是该软件的主要执行文件,它的主要功能在于解析和转换Word文档中的格式信息,确保当文本被复制到Eweb中时,能够保持原有的排版和样式。通过运行这个程序,用户可以轻松地将Word文档中的文本导入,同时...
3. **多媒体集成**:除了文字编辑,eWeb Editor 3.8 还支持插入音频、视频等多媒体元素,用户可以直接嵌入在线媒体资源,或者上传本地文件,丰富网页内容的表现形式。 4. **表格与列表**:对于数据展示,编辑器提供...
3. 文件上传/下载:用户可以将本地文件上传到服务器,或下载服务器上的文件到本地。 4. 文件权限管理:可能支持设置文件和目录的权限,如读写执行权限。 5. 多用户协作:如果是一个团队工具,可能支持用户管理,分配...