- 浏览: 116418 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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开发框架
看来,年内发布一个完整的新版本比较难了.
实在是要忙公司的项目.
eweb框架虽然也在持续开发中,
不过因为新版本的文档资料还没有重新编写,
所以只能先放出一个正在开发中的演示,虽然是演示,
不过该版本已经比较稳定了.
这次放出的压缩包解开之后有三个东西:
源代码:eweb4j-petstore-sources.jar
war部署包:eweb4j-petstore.war
数据库脚本(mysql):petstore_db.sql
如果需要其他数据库,自己写一个吧,才两个表,一个外键关系而已.
放一张截图吧:
各位请放心下载哇.
上几句代码吧:
实在是要忙公司的项目.
eweb框架虽然也在持续开发中,
不过因为新版本的文档资料还没有重新编写,
所以只能先放出一个正在开发中的演示,虽然是演示,
不过该版本已经比较稳定了.
这次放出的压缩包解开之后有三个东西:
源代码:eweb4j-petstore-sources.jar
war部署包:eweb4j-petstore.war
数据库脚本(mysql):petstore_db.sql
如果需要其他数据库,自己写一个吧,才两个表,一个外键关系而已.
放一张截图吧:
各位请放心下载哇.
上几句代码吧:
package com.cfuture08.eweb4j.demo.petstore.pet.web; import java.util.Arrays; import com.cfuture08.eweb4j.demo.petstore.AbstractAction; import com.cfuture08.eweb4j.demo.petstore.pet.Pet; import com.cfuture08.eweb4j.demo.petstore.pet.PetException; import com.cfuture08.eweb4j.mvc.annotation.POST; import com.cfuture08.eweb4j.mvc.annotation.Path; /** * 添加宠物信息控制器 * * @author weiwei * */ public class AddPetInfoAction extends AbstractAction { /** * 接收页面表单数据,提供验证规则 */ private Pet pet = null; /** * 处理HTTP请求 POST http://{host}:{port}/eweb/pets/ * * @return */ @Path("pets/") @POST public String doPost() { request.setAttribute("types", Arrays.asList("猫", "狗", "猪")); try { petService.create(pet); } catch (PetException e) { request.setAttribute("error", e.getMessage()); return "../error.jsp"; } return "redirect:list"; } public Pet getPet() { return pet; } public void setPet(Pet pet) { this.pet = pet; } }
package com.cfuture08.eweb4j.demo.petstore; import javax.servlet.http.HttpServletRequest; import com.cfuture08.eweb4j.demo.petstore.master.MasterService; import com.cfuture08.eweb4j.demo.petstore.pet.PetService; import com.cfuture08.eweb4j.ioc.annotation.Ioc; /** * 宠物信息抽象控制器 * * @author weiwei * */ public abstract class AbstractAction { /** * 通过IOC容器注入 */ @Ioc("petService") protected PetService petService; /** * 通过IOC容器注入 */ @Ioc("masterService") protected MasterService masterService; /** * 声明且提供setter方法,框架就能自动注入 */ protected HttpServletRequest request; public PetService getPetService() { return petService; } public void setPetService(PetService petService) { this.petService = petService; } public MasterService getMasterService() { return masterService; } public void setMasterService(MasterService masterService) { this.masterService = masterService; } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } }
package com.cfuture08.eweb4j.demo.petstore.pet; import java.util.List; import com.cfuture08.eweb4j.orm.dao.DAO; import com.cfuture08.eweb4j.orm.dao.DAOException; import com.cfuture08.eweb4j.orm.dao.cascade.CascadeDAO; import com.cfuture08.eweb4j.orm.dao.delete.DeleteDAO; import com.cfuture08.eweb4j.orm.dao.factory.DAOFactory; import com.cfuture08.eweb4j.orm.dao.insert.InsertDAO; import com.cfuture08.eweb4j.orm.dao.select.DivPageDAO; import com.cfuture08.eweb4j.orm.dao.select.SelectDAO; import com.cfuture08.eweb4j.orm.dao.update.UpdateDAO; /** * 宠物信息服务接口实现类 * * @author weiwei * */ public class PetServiceImpl implements PetService { private DivPageDAO divPageDAO; private CascadeDAO cascadeDAO; private SelectDAO selectDAO; private InsertDAO insterDAO; private UpdateDAO updateDAO; private DeleteDAO deleteDAO; // 这是一个用来拼凑sql语句的接口, // 是在ORM映射之下的.并不是直接拼凑原生SQL private DAO dao; public PetServiceImpl() { this.divPageDAO = DAOFactory.getDivPageDAO(); this.cascadeDAO = DAOFactory.getCascadeDAO(); this.selectDAO = DAOFactory.getSelectDAO(); this.insterDAO = DAOFactory.getInsertDAO(); this.updateDAO = DAOFactory.getUpdateDAO(); this.deleteDAO = DAOFactory.getDeleteDAO(); this.dao = DAOFactory.getDAO(Pet.class); } /** * 分页获取宠物信息列表 * * @param pageNum * @return * @throws PetException */ public List<Pet> getPage(int pageNum) throws PetException { List<Pet> list = null; try { list = divPageDAO.divPage(Pet.class, pageNum, 10); if (list != null) { // 级联查询出所有宠物的主人信息 cascadeDAO.select(list.toArray(new Pet[] {}), "master"); } } catch (DAOException e) { throw new PetException("数据库错误", e); } return list; } public long count() throws PetException { long count = 0; try { count = selectDAO.selectCount(Pet.class); } catch (DAOException e) { throw new PetException("数据库错误", e); } return count; } /** * 添加宠物信息 * * @param pet * @throws PetException */ public void create(Pet pet) throws PetException { if (pet == null) throw new PetException("要添加的宠物信息不能为空"); try { Pet db_pet = selectDAO.selectOne(pet, "name"); if (db_pet != null) throw new PetException("宠物名字已经存在,请重填"); db_pet = selectDAO.selectOne(pet, "number"); if (db_pet != null) throw new PetException("宠物编号已经存在,请重填"); pet.setMaster(null); insterDAO.insert(pet); } catch (DAOException e) { throw new PetException("数据库错误", e); } } /** * 更新 * * @param petId * @param pet * @throws PetException */ public void update(Pet pet) throws PetException { if (pet == null) throw new PetException("宠物信息已被删除或丢失"); try { Pet db_pet = dao.selectAll().where().field("name") .equal(pet.getName()).and("id").notEqual(pet.getId()) .queryOne(); // 也可以 // String condition = String.format("name = '%s' and id <> '%s'", // pet.getName(), pet.getId()); // Pet db_pet = // selectDAO.selectOneByWhere(Pet.class, // condition); if (db_pet != null) throw new PetException("宠物名字已经存在,请重填"); dao.clear(); db_pet = dao.selectAll().where().field("number").equal(pet.getNumber()) .and("id").notEqual(pet.getId()).queryOne(); // 也可以 // condition = String.format("number = '%s' and id <> '%s'", // pet.getNumber(), pet.getId()); // db_pet = selectDAO.selectOneByWhere(Pet.class, // condition); if (db_pet != null) throw new PetException("宠物编号已经存在,请重填"); pet.setMaster(null); updateDAO.update(pet); } catch (DAOException e) { throw new PetException("数据库错误", e); } } /** * 删除 * * @param petId * @throws PetException */ public void remove(long petId) throws PetException { try { deleteDAO.deleteById(Pet.class, petId); } catch (DAOException e) { e.printStackTrace(); throw new PetException("数据库错误", e); } } /** * 获取详细信息 * * @param petId * @return * @throws PetException */ public Pet getDetail(long petId) throws PetException { Pet pet = null; try { pet = selectDAO.selectOneById(Pet.class, petId); // 级联查询出所有宠物的主人信息 cascadeDAO.select(pet, "master"); } catch (DAOException e) { throw new PetException("数据库错误", e); } return pet; } }
package com.cfuture08.eweb4j.demo.petstore.pet; import com.cfuture08.eweb4j.demo.petstore.master.Master; import com.cfuture08.eweb4j.mvc.validate.annotation.Chinese; import com.cfuture08.eweb4j.mvc.validate.annotation.Enum; import com.cfuture08.eweb4j.mvc.validate.annotation.Int; import com.cfuture08.eweb4j.mvc.validate.annotation.Length; import com.cfuture08.eweb4j.mvc.validate.annotation.Required; import com.cfuture08.eweb4j.mvc.validate.annotation.Size; import com.cfuture08.eweb4j.orm.config.annotation.Id; import com.cfuture08.eweb4j.orm.config.annotation.One; import com.cfuture08.eweb4j.orm.config.annotation.Table; @Table("t_pet") public class Pet { @Id private long id; @Required(mess="编号必填") @Length(min = 6, max = 6, mess="编号6位数字或文字的组合") private String number; @Required(mess="宠物名字必填,2-32位,中文") @Chinese(mess="宠物名字要求全中文") @Length(min=2,max=32,mess="宠物名字,2-32位") private String name; @Required(mess="年龄必填,1-5岁") @Int(mess="年龄,必须是数字") @Size(min = 1, max = 5, mess="年龄,1-5岁") private int age; @Required(mess="宠物类型必填") @Enum(words = { "猫", "狗" },mess="宠物类型, 只能添加猫和狗两种类型") private String type;//只能添加猫和狗两种类型 @One(column = "master_id") private Master master; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Master getMaster() { return master; } public void setMaster(Master master) { this.master = master; } @Override public String toString() { return "PetModel [id=" + id + ", number=" + number + ", name=" + name + ", age=" + age + ", type=" + type + ", master=" + master + "]"; } }下.
发表评论
-
EWeb4J 1.9.1 新版本发布 基于Servlet/JDBC的轻量级web开发框架
2012-11-28 22:08 2829EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量 ... -
EWeb4J-SolidBase 发布新版本
2012-07-08 12:41 2137SolidBase项目是采用 DWZ + EWeb4J 开发的 ... -
EWeb4J 框架迁移到 GitHub
2012-07-05 10:02 1890EWeb4J 框架: https://github.com/ ... -
发布一个EWeb4J-1.9的Demo
2012-07-04 16:38 26EWeb4J-1.9框架发布在即,在此之前,发布一个小Demo ... -
EWeb4J-1.9-文件上传下载和生成建表脚本
2012-06-09 12:11 2303毕业了。高兴一下,哈。 一直以来,eweb4j framew ... -
SolidBase 二次开发 GIS 截图
2012-05-07 16:12 1919有位大哥哥使用 EWeb4J 的项目 SolidBase 作为 ... -
EWeb4J 国际化支持出炉啦(有源码看)
2012-05-06 15:31 2059很荣幸也很开心地公布,EWeb4J 支持国际化了。并且有着它独 ... -
Play framework 国际化
2012-05-03 20:04 4307Play的国际化操作还是非常简单的。大概分为四步: 1. ... -
解决Dojo的Widget在创建ArcGIS的Map对象时出现ID已被Registered的错误
2012-04-25 19:23 3139今天在用Dojo的toolkit(Dijits)创建ArcGI ... -
eweb4j在线演示程序更新
2012-04-25 09:25 2102访问地址:SolidBase 增加菜单显示权限 ... -
EWeb4J-1.9-继续改善ActiveRecord支持【级联】操作
2012-04-17 20:58 1488老习惯:约定优于配置 ... -
EWeb4J-1.9-控制器更新
2012-04-13 16:56 1445主要增加以下更新: 验证器 声明式事务 7个默认Acti ... -
eweb4j-1.9-支持ActiveRecord模式
2012-04-06 20:46 1617@Entity @Table(name="t_ ... -
(不断更新)EWeb4J-1.9-SNAPSHOT最近进程
2012-03-28 23:33 1815经过奋战,终于有个稳定点的SNAPSHOT版本咯。 较之上个 ... -
eweb4j演示项目-SolidBase增加对菜单显隐的权限控制
2012-03-28 14:41 1904昨晚捣鼓到两点多才弄好,今天整理了下,大概把菜单权限控制做好了 ... -
(下篇)单例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 4439PS:真正要发布到Maven中央库中是首先需要到https:/ ... -
EWeb4J-1.8.6 发布,同时带来一个演示项目
2012-03-08 17:44 2990距离上次1.7的发布已经过去5个月了。首先值得高兴的是EW ...
相关推荐
在描述中提到的“eweb编辑器 要改下db中的后缀为asp”,这可能是指在使用eweb编辑器进行网站开发时,需要将数据库连接文件或动态页面文件的扩展名从原本的格式更改为ASP(Active Server Pages)格式。ASP是一种微软...
Rockwell 1756-Eweb模块
《eWeb Editor客户端:在线文本编辑器的深度解析与应用》 eWeb Editor是一款功能强大的在线文本编辑器,尤其在Web开发领域中被广泛应用。它以其便捷的操作界面和丰富的编辑功能,为网络编程人员提供了极大的便利。...
1756-EWEB
eweb4j是一个Java开发框架,它专注于提供高效、轻量级且易于使用的Web应用程序解决方案。这个框架的设计理念是简化开发流程,提高开发效率,同时保持代码的清晰性和可维护性。下面我们将深入探讨eweb4j框架的核心...
《EWeb编辑器2.80:打造高效网页创作利器》 EWeb编辑器,全称为"EWeb Editor",是一款专业且用户友好的网页编辑工具,尤其以2.80版本备受好评,被誉为“绝对好用”。这款编辑器旨在简化网页制作流程,提升开发效率...
EWeb通常支持文件管理功能,允许用户在编辑器内部浏览、上传、下载和管理文件。理解如何有效地组织和操作项目文件对于保持代码的整洁性和可维护性至关重要。 六、代码版本控制 作为一个现代的在线编辑器,EWeb可能...
在本主题中,我们将深入探讨如何使用易语言的CCHTTP模块来开发WEB网站,以及相关源码分析。 首先,"CCHTTP"是易语言中的一个模块,用于处理HTTP协议,实现客户端向服务器发送请求并接收响应的功能。在构建WEB应用时...
本案例是通过jquery html css实现的极简动态菜单实现,运行index.html可以在浏览器通过鼠标划过菜单实现菜单的动态放大缩小效果,并引入websymbols字体库对字体进行处理,都包含在压缩包里,大家可以自行下载。
### 高速 Fel表达式引擎知识点详解 #### 一、Fel表达式引擎概述 Fel(Fast Expression Language)是一种高性能的表达式引擎,旨在满足企业级应用对于表达式处理的需求。它具备快速执行的能力,与ognl等其他流行...
2. `eweb` 有可能是系统的主要应用代码,包含Web应用程序的前端和后端逻辑。 3. `email` 可能是与电子邮件功能相关的模块,处理邮件发送、接收和管理。 4. `knowledge` 可能是知识库系统,用于存储和检索企业内部的...
- **尖括号{x | y}**: 表示必须从选项中选择一个。 - **星号[*]**: 表示可以从多个选项中选择多个或不选。 - **&<1-n>**: 表示前面的参数可以重复1到n次。 - **双斜杠//**: 表示注释行。 - **各类标志**: - **...
**eweb网页编辑器**是一款专业且用户友好的软件,专为论坛和公告发布等应用场景设计。它将复杂的网页制作过程简化,使非专业程序员也能轻松创建和编辑网页内容。这款编辑器集成了多种功能,旨在提高用户在互联网上的...
java猜数字源码 = 为什么要用 EWeb4J ? = EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量级 Java Web 开发框架。它可以代替 SSH 来开发一个完整的 Web 应用程序。 它专注于 少侵入、少配置、松耦合、RESTful架构风格的...
服务器需要监听特定端口,接收到客户端请求后解析请求报文,执行相应的操作(如读取文件、执行动态脚本等),然后构造响应报文并发送回客户端。 **www.pudn.com.txt和eweb文件** "www.pudn.com.txt"可能包含的是...
个人学习使用,简单的对接银行的接口,发现都是java版本的,写个.net的demo记录下,简单的对接了下招商银行,主要有付款和交易流水查询等基本的接口开发
使用python3 eg.py urls.txt目标title:锐捷网络-EWEB网管系统port:4430漏洞成因<?php //查询用户是否上线了 $userip = @$_POST['ip']; $usermac = @$_POST['mac']; if (!$userip || !$usermac) { exit; } /* ...
【标题解析】:“[MMS_041397]Reading CLX_val using EWEB.rar”这个标题可能指的是一个关于使用EWEB工具读取AB PLC(Allen Bradley Programmable Logic Controller)中的CLX(可能是ControlLogix系列)寄存器或变量...
**eWeb Editor 3.8 全面解析** eWeb Editor 3.8 是一款功能强大的在线HTML编辑器,专为网页内容编辑和管理而设计。它提供了丰富的文本格式化选项,让用户无需深入HTML代码就能轻松创建和编辑网页内容。这款编辑器以...
ruffle-demo是如何在您的网站中包含Ruffle的示例。 对于开发人员来说,它也是一个不错的本地测试,可以在Web上本地运行Ruffle。 使用ruffle-demo 托管演示 要立即在线观看此演示,。 它与该目录完全相同,每晚更新...