(不断更新)EWeb4J-1.9-SNAPSHOT最近进程
经过奋战,终于有个稳定点的SNAPSHOT版本咯。
较之上个版本1.8.6,本版本1.9-SNAPSHOT有以下几个更新点:
SolidBase 添加菜单显隐权限控制,包括导航菜单(href=xxx.jsp或xxx.html)的控制 SolidBase 对导航菜单(href=xxx.jsp或xxx.html)的处理修改,原先为直接服务端跳转到main/veiw下的xxx.jsp或者xxx.html,现在改为将xxx.jsp/xxx.html整个字符串设置到request.setAttribute("switchEnvPath", "xxx.jsp"),然后统一跳转到main/view/switchEnv.jsp,然后在switchEnv.jsp的内容为:
这样目标xxx.jsp/xxx.html页面是从WebContent中开始寻找并且被包含进来。并且因为这里已经包裹了这段代码:
因此在xxx.jsp/xxx.html中已经不再需要包裹上面这段代码了。
SolidBase的菜单显示增加了session缓存,这样不需要每次都查询数据库,不过带来的问题是菜单的修改不能马上见效,若登陆账号是超能力用户或者没有任何角色信息的话,则不会缓存,否则需要重新登录才能看到最新的菜单修改(包括菜单显隐的权限分配修改)
eweb4j 框架更新了比较多。详细看看下面列表
几个DAO增加对Map的支持,使用map可以不需要写model类 MVC增加7个默认action,约定视图和URI-Mapping,例如 DemoControl
index.html@Entity@Table(name="t_pet")public class Pet extends Model{ public final static Pet instance = new Pet(); private String name; private int age; public Pet(){} public Pet(String name, int age){ this.name = name; this.age = age; } //setter and getter}//使用new Pet("xiaohei", 5).create();//insertnew Pet("xiaohei", 5).save();//当没有ID值的时候是insertPet pet = new Pet("xiaobai",4);pet.create();//insert这时候pet.id已经被注入了pet.setName("test");pet.save();//这时候因为pet.id有值,所以是updatepet = new Pet();pet.setId(2);pet.load();//这个时候会通过id值去查询数据库,并将数据注入到pet实例中。List<Pet> pets = Pet.instance.findAll();/* 分页 */List<Pet> page = Pet.instance.find().fetch(10);page = Pet.instance.find().fetch(2, 5);/* 条件查询 */List<Pet> pets = Pet.instance.find("byName", "xiaohei").fetch();pets = Pet.instance.find("byNameAndAge", "xiaohei", 5).fietch();pets = Pet.instance.find("name = ?", "xiaohei").fetch();Pet p = Pet.instance.find("name = ?", "xiaohei").first();p = Pet.instance.findById(3);p = Pet.instance.find("byNameAndAge", "xiaohei", 5).first();/* 删除 */Pet.instance.delete("byName", "xiaohei");Pet.instance.deleteAll();/* 计算 */long rows = Pet.instance.count();/* select count(*) */rows = Pet.instance.count("byName", "xiaohei");/* count(*) ... where name='xoapjeo' */
[*] 待续