读书人

EWeb4J-1.9-资料上传下载和生成建表脚

发布时间: 2012-07-18 12:05:40 作者: rapoo

EWeb4J-1.9-文件上传下载和生成建表脚本
毕业了。高兴一下,哈。

一直以来,eweb4j framework新版本都没有发布,因为忙工作、忙毕业、忙答辩。

只好在有空的时候为框架添加新特性、重构旧代码来弥补了。

写本文之前,修复了一些小bug,增加了两个特性:文件上传下载、生成建表脚本。

1.文件上传下载:

文件上传下载?这要涉及到文件IO流吧。或者,用第三方组件?例如Apache 的common-upload, 不不不,咱都不用,咱直接在控制器里声明一个 File 对象就行了。什么?这么简单?先看看代码吧~


PS:注意表单文件input的name要和控制器声明的File对象名一致(实质上是和setter方法名相关)。另外注意 enctype

就这么简单,在一个Action方法执行前,框架会自动接收所有的文件上传请求,并将其作为一个临时文件保存到临时目录里,然后Action方法执行之后,框架会自动清空这些临时文件。因此,我们只要在Action方法体中,将临时文件拷贝到另外一个目录即可。下面有一个更加全面的例子:
//文件上传


upload.html

文件上传这么简单,我想聪明的你应该猜到,文件下载大概怎么做了吧!没错,仅需要在Action方法里返回一个File对象即可!如果有多个文件,那么请返回文件数组吧!框架会自动将其打包成zip。
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签出也行。

读书人网 >Web前端

热点推荐