1.nui-treegrid列想要编辑,必须是allowCellSelect="true"。
2.java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
jdbc.properties中useSSL设置为了true,改为false即可。
3.MySQL8.0的my.ini位置:C:\ProgramData\MySQL\MySQL Server 8.0(ProgramData是隐藏文件夹)
4.redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
redis没有启动,cmd切换到在redis所在文件夹,执行:redis-server --service-install redis.windows-service.conf --loglevel verbose 增加redis服务,设为自动启动。
5.nutz页面设置操作权限
<%if(so.hasPermission("sysrole.saveOrUpdate")){%>
<div>...</div>
<%}%>
6.nutz操作权限
@RequiresPermissions("sysrole.saveOrUpdate")
@AutoCreateMenuAuth(permission = "sysrole.saveOrUpdate", parentPermission = "sysrole.index")
//顶级没有实际页面的菜单权限可任意,下级菜单parentPermission为上级菜单的permission。
//实际操作如CRUD的parentPermission为列表permission
7.nutz自带的查询条件
Cnd.where("c_is_valid", "=", 0); 字段可以是实体属性也可以是表字段,为方便和参数区分使用表字段(带_的)。
8.mysql查询工作空间的表名和表注释。
Select table_name 表名,TABLE_COMMENT 表注释 from INFORMATION_SCHEMA.TABLES Where table_schema = 'nutzfw-dev'
9.nutz字符型主键加 @Name,传参用int或long;数值型主键加 @Id,传参用String。否则会报错!
10.Duplicate entry '33382-1-0' for key xxx
主键唯一性约束异常
11.nutz出问题时,console即使没报错,warning也需要查看。
12.nutz调用url,get请求就要 @GET,post请求 @POST。
13.NutzFw项目的ajax请求:
core.postJSON("/itemtask/updateNodeSort", {itemNodes:JSON.stringify(data)});
14.玩转nui的api。
nui的api没有的东西(参数、方法),可到nui开发参考手册查看,没准就有你要的答案(^U^)ノ~YO。
实在都没找到,可到nui-min.js中找(开源项目就得看源代码丫)。
15.nui所有事件名称可在nui-min.js的mini._ParseString中找。
16.layui动态生成复选框不要设置field,否则会出现编辑框。
{field:'',type:'checkbox'},
17.layui监听table中的复选框。
table.on("checkbox(tableId)", function (obj) {
var data = obj.data;
if (obj.checked) {
alert(data.id);
}
});
18.layui删除多行(dom和cache)
case 'batchDelete'://删除
var tableDT = table.cache.buttonList;//1获取之前编辑过的全部数据,前提是编辑数据是要更新缓存,buttonList 为表格的id
var data = layui.table.checkStatus('tableId').data;//2获取选中数据
if(data.length<=0){
layer.msg('最少选择一行');
return;
}
//方法一:遍历缓存列表,将非选中的按钮信息对象存入数组中,然后表格重载此数组(非选中的存入数组)
// var tableArr = [];
// for (var i = 0; i < tableDT.length; i++) {//遍历表格缓存数组
// var btnObj=tableDT[i];
// if(!btnObj.LAY_CHECKED){//条件:非选中
// tableArr.push(btnObj);//把未选中的按钮信息对象存入数组中
// }
// }
//方法二:遍历缓存列表,将选中的按钮信息删除(选中的删除)
var tableArr = [];
for (var i = 0; i < tableDT.length; i++) {//遍历表格缓存数组
var btnObj = tableDT[i];
if (btnObj.LAY_CHECKED) {//条件:选中
tableDT.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
i--;
}
}
tableArr = tableDT;
table.reload("buttonList", {
data: tableArr // 将新数据重新载入表格
});
break;
19.java生成唯一标识。
String id= UUID.randomUUID().toString();
out:46049c6d-282e-434b-9c16-025c91ddd23d
20.nutz使用变量作为sql中的表名。
java:
HashMap data = new HashMap(2);
data.put("t", object);
xml中的sql:
CREATE TABLE ${t.tableName} ...
21.eclipse修改类和方法注释:
Java->Code Style->Code Templates->Comments
Types:类
Methods:方法
${user}:系统用户名
${tags}:参数和返回值
/**
*@Description:
*@author: wxg
*@date: ${date} ${time}
* ${tags}
*/
22.使用removeAttr()后再在同一元素用attr()无效,得用prop()。
23.tomcat部署多个java web项目,需要在项目web.xml中加不同的webAppRootKey。否则默认为相同的,只会编译一个!
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>erpFrame.root</param-value>
</context-param>
24.MessageFormat.format格式化字符串,int类型超过3位会自动加","分割。
java.text.MessageFormat.format("varchar({0}) DEFAULT {1}",len+"","");
25.layui给表格行数据赋值后刷新当前行:obj.update(data)。
26.nutz分页的pageNumber=0表示不分页!
27.js中json转数组直接调用函数:eval(json);
28.注解联合索引(验证唯一) @TableIndexes({@Index(name = "fieldName_unique",fields = {"fieldName","delFlag"})})
29.nutz自定义sql赋值NULL会报错,可用 @NULL进行转义。
30.ItemNode node = dao.insert(itemNode); //insert可以返回其自增的主键ID
31.nutz的自定义sql参数${param}不会转义,要转义用 @param。
32.nui.tree可以通过tree.filter(function (node) {return true;}来过滤掉不需要显示的节点。
此方法是自下而上的,即先取到子节点后取到其父节点。