dinamica框架加载机制:url就是文件夹路径
1.页面基础配置,配置简单查询,加载页面
当前页业务处理配置
<transaction>
<classname>dinamica.GenericTransaction</classname>
<validator>false</validator>
<transaction>false</transaction>
<jdbc-log>false</jdbc-log>
<recordset id="roles.sql" source="sql"scope="transaction" />
</transaction>
Recordset是配置当前页查询的sql
当前页输出配置
<output>
<classname>dinamica.GenericOutput</classname>
<template>template.htm</template>
<set-http-headers>true</set-http-headers>
<content-type>text/html</content-type>
<print mode="table" recordset="roles.sql"tag="rows" />
<print mode="table" recordset="roles.sql"tag="role-list" />
</output>
Print输出标签,table是指输出多条数据,form是指输出一条,tag是指输出在页面哪一个标签里面;
加载查询页面js,没有增删改查,里面什么也不用写
this.search=search;
search=$Search({datagrid:"datagrid",formId:"searchForm",success:function(){
}}).initSearchBtn().searchData(1);
加载搜索该页面的配置文件
<?xml version='1.0' encoding='UTF-8'?>
<config>
<summary>
查询用户
</summary>
<log>false</log>
<colname>userlogin</colname>//查询条件标签id, id之间用逗号隔开
<operator></operator>
<sql-template>query-base.sql</sql-template>//查询sql
<paging-recordset>query.sql</paging-recordset>//分页
<total-recordset>query-count.sql</total-recordset>//分页
<transaction>
<classname>com.ccms.SearchForJson</classname>
<validator>true</validator>
<transaction>false</transaction>
<jdbc-log>false</jdbc-log>
</transaction>
<output>
<classname>dinamica.GenericOutput</classname>
<template>script.js</template>//配置查询结果给页面js
<set-http-headers>true</set-http-headers>
<content-type>text/javascript</content-type>
<expiration>0</expiration>
<print mode="table" recordset="query.sql"tag="rows"/>
<print mode="form" recordset="query-count.sql"/>
</output>
</config>
查询条件配置,只有配置该字段才能用该字段作为查询条件,这里的parameter标签id就是colname里面的值,
<?xml version='1.0' encoding='UTF-8'?>
<validator>
<parameter id="userlogin"type="varchar" required="false"label="Login de Usuario" />//配置查询那些字段
<!-- <parameter id="role_id" type="integer"required="false" label="Rol" />
<parameterid="fname" type="varchar"required="false" label="Nombre" />
<parameterid="lname" type="varchar"required="false" label="Apellido" /> -->
<custom-validator
classname="dinamica.validators.SQLPatternTransformer"
on-error-label="SQL LIKE transformer."
parameter="userlogin"rule="like" />//配置是否模糊查询
<!-- <custom-validator
classname="dinamica.validators.SQLPatternTransformer"
on-error-label="SQLLIKE transformer."
parameter="fname"rule="like" />
<custom-validator
classname="dinamica.validators.SQLPatternTransformer"
on-error-label="SQLLIKE transformer."
parameter="lname"rule="like" />
-->
</validator>
最后查询条件配置完成给query-base.sql拼接条件clause-userlogion.sql,拼接的sql名称必须和clause-加上parameter标签id加.sql;
2.配置增删编辑
this.search=search;
search=$Search({datagrid:"datagrid",formId:"searchForm",success:function(){
$(".edit_btn").unbind().on("click",function(){
if($(this).attr("code") != undefined&& $(this).attr("code") != ""){
obj.edit({id:$(this).attr("code")});//拿到id去编辑这个实体obj,下面有解释
}
});
$(".delete_btn").unbind().on("click",function(){
var obthis = $(this);//拿到当前点击的那行的对象
$Dialog().confirm("确定要删除该条数据吗?", function(){
if(obthis.attr("code") != undefined&& obthis.attr("code") != ""){
obj.del({id:obthis.attr("code")});
}
});
});
$(".disable_btn").unbind().on("click",function(){
var obthis = $(this);
$Dialog().confirm("确定要禁用此用户吗?", function(){
if(obthis.attr("code") != undefined&& obthis.attr("code") != ""){
var url = "${def:actionroot}/disable?id=" + obthis.attr("code");
ajaxCall(url,{
method:"get",
progress:true,
dataType:"script",
success:function(){
search.searchData();
}
});
}
});
});
$(".resetPW_btn").unbind().on("click",function(){
if($(this).attr("code") != undefined&& $(this).attr("code") != ""){
var url = "${def:actionroot}/newpass/form?user_id="+$(this).attr("code");
ajaxCall(url,{
method:"get",
progress:true,
dataType:"script",
success:function(){
$("#modalAddnew1").modal("show");
}
});
}
});
$("#openPicList").unbind().on("click",function(){
ccms.dialog.open({url:"${def:context}/action/admin/user/getTenantry/form?random=" + Math.random(),id:"dialogPic",width:500,height:350});
});
}}).initSearchBtn().searchData(1);
obj对象实例化
var obj = $Crud({
formId:"formEditor",//提交的form表单id
button:"save_btn",//保存按钮id
insertBack:function(){
search.searchData();
},
updateBack:function(){
search.searchData();
},
deleteBack:function(){
search.searchData();
},
addNewBack:function(){
document.getElementById("userlogin").value= '';
document.getElementById("passwdtr").style.display= 'block';
document.getElementById("confirmtr").style.display='block';
document.getElementById("tenantryID").style.display='block';
document.formEditor.userlogin.disabled= false;
$("#formTitle").html("新增用户信息");
},
editBack:function(){
$("#formTitle").html("修改用户信息");
},
validate:function(){
var flag=$("#formEditor").validate({
rules:{
userlogin:{
required:true,
rangelength:[1,25]
},
role_id:{
required:true,
},
passwd:{
required:true,
rangelength: [1,15]
},
confirm:{
required:true,
rangelength:[1,15]
},
fname:{
required:true,
rangelength:[1,25]
},
tenantry_name:{
required:true
},
email:{
isEmail:true
}
},
messages:{
userlogin:{
required:"请输入登录代码",
rangelength:"登录代码长度为1到25位"
},
role_id:{
required:"请选择用户角色",
},
passwd:{
required:"请输入登录密码",
rangelength:"登录密码长度为1到15位"
},
confirm:{
required:"请输入确认密码",
rangelength:"确认密码长度为1到15位"
},
fname:{
required:"请输入名称",
rangelength:"名称长度为1到25位"
},
tenantry_name:{
required:"请选择商户",
}
}
});
return flag;
},
check:function(){
returntrue;
}
}).init();
这个obj如何对应哪个实体目前不知道,有可能是保存到查询结果的query-base.sql的实体中,所以编辑也是同理,读取这个实体的值;因为没有源码dao层只能猜想;
环境配置,
1. 用的jdk1.7,编译环境compiler也是1.7,但是project facets是1.8;
2. jdk编码配置:-Duser.country=CN-Duser.language=zh -Dfile.encoding=UTF-8
3. Tomcat配置:
4. <Context path="" docBase="D:\Users\lee\workspace\OA"reloadable="false">
5.
6. <Resource
7. name="jdbc/ccms"
8. auth="Container"
9. type="javax.sql.DataSource"
10. driverClassName="org.postgresql.Driver"
11. url="jdbc:postgresql://127.0.0.1:5432/oa"
12. username="postgres"
13. password="postgre"
14. maxActive="100"
15. maxIdle="10"
16. maxWait="-1"/>
17. </Context>
4.数据库是:postgres。
5.