您一定了解
SSH
,还有
Strust1+Velocity
框架。前者配置文件实在是太多,多层架构,开发一个功能模块涉及很多类、很多关系,一方面上手非常难另外开发效率也不高。后者随着技术发展,对前端技术支持不太友好,比如
Ajax
、
JS
框架等,需要中间跳转页面进行输出,再者也需要配置。
根据项目开发中实际遇到的各种问题,研究各种框架优缺点之后,决定选择
Nutz
国产开源框架作为基础来构建本开发框架。选择
Nutz
有如下优点:
1、
URL“零”配置
您再也不用为繁琐的配置文件烦恼了,
Nutz-Mvc
使用全注解的方式来封装
URL
,使用简单的
@At
在类或方法上实现
URL
映射。
2、灵活的多数据源支持
通过
Nutz.Ioc
您只要在数据库配置文件
datasource.json
中配置对象,如
dao1
、
dao2
,那么在
Action
类中,
@Inject
protected
Dao
dao1
;
@Inject
protected
Dao
dao2
;
即可使用
daoCtl
的方法直接操作这两个数据库。
daoCtl
里集成了常用的添加、修改、查询、分页等方法。
3、功能强大的视图
Nutz-Mvc
使用
@Ok @Fail
注解,来实现执行成功或失败后的输出,可以外部重定向、内部重定向、返回字符串、返回
JSON
等等,总之您想要什么结果就能给您返回什么,再也不用使用单独的
Action
类来封装
JSON
数据了,您想要随时都可以有。
4、功能强大的数据库操作
Nutz.Dao
封装了常用的数据库操作,减少自定义
SQL
的编写,提高开发效率和安全性,通过工具类
Cnd.where(“loginname”, “=”,
user.getLoginname())
和
Sql sql = Sqls.create("DELETE FROM $table WHERE name=@name");
sql.vars().set(“table”,”t_abc”);
sql.params().set(“name”,”Peter”);
中的
sql.params().set()
方法,可以有效的防止
SQL
注入。
更多使用方法请参考本目录下的
nutz
开发手册。
5、
Velocity
对于大家常用的
Velocity
模板语言,本框架也进行了整合。
req.setAttribute(“menulist”,
menulist);
将对象输出到页面,在页面上即可直接使用模板语言输出。
在
UI
表现层上面,本次框架也进行了调整,原则上支持纯
Ajax
开发。后台集成
jQuery
、
EasyUI
、
zDialog
、
EasyUI.DataGrid
、
ztree
、
My97DatePicker
等
JS
组件。
1、兼容主流浏览器
您再也不用考虑浏览器兼容性问题,只要您的
JS
全部使用
jQuery
来编写,那么还用担心什么呢,本框架目前在
IE6/IE7/IE8/IE9/IE10/IE11
、
Chrome
、
FrieFox
、
360
测试通过。
2、
zDialog的使用更加简便
通过使用
Ajax
以及对
zDialog
的优化,您再也不需要写中间页面进行页面跳转了。您可以在弹出框的父页面进行弹出表单的提交,在父页面写弹出框按钮的事件。
通过
$DW.$(“#form1”).serialize();
获取弹出窗口表单内容
$DW.$Z(“name”).focus();
操作弹出框内容,赋值等
$D.close();
关闭弹出窗口
让我们看一个完成的示例:
function addSave(){
if($DW.Verify.hasError()){
return;
}
jQuery.ajax({
type:
‘POST’,
url :
“/private/sys/unit/addSave” ,
data :
$DW.$(“#form1”).serialize(),
success :
function (res) {
if(res!=””){
$D.close();
Dialog.alert(“
添加成功!
“);
initTree();
view(res);
}else{
Dialog.alert(“
添加失败!
“);
}
return
false;
},
fail :
function(res) {
Dialog.alert(“
系统错误
?!”);
}
});
}
3、
Ajax分页支持
集成
jQuery.Easyui.DataGrid
,从后台封装的
JSON
数据格式,到前台展示,分页查询从来没有如此简便过。
daoCtl.getListPageJson()
封装了
easyui.datagrid
分页所需格式数据,更不用您手动写烦人的
JSON
了。
4、权限控制到按钮
您只需要在
JS
中使用
Page.initBtn();
$!initBtn
即可控制页面按钮是否可用,当然,在此之前,您需要在资源菜单管理中添加按钮
ID
,在角色管理中对用户分配按钮权限。