2018-09-25 22:18

5 0 1 * *
http://www.jfinal.com/doc/9-2

2018-09-20 20:35

PS:如果有用到 数据库和缓存等插件时 这样写就可以了

private void init() {
log.info("----------------启动测试配件--------------------");
Plugins me = new Plugins();
new YouConfig().configPlugin(me);
for (IPlugin iPlugin : me.getPluginList()) {
iPlugin.start();
}
log.info("----------------测试配件启动成功--------------------\r\n\r\n");
}

2018-09-14 21:45

@netwild
http://www.jfinal.com/doc/6-3
5、静态方法调用
#if(com.jfinal.kit.StrKit::isBlank(title))
....
#end

2018-09-13 18:20

@JFinal 还是JFinal Template强!

2018-09-13 09:04

getModel(class, true)

多看文档: http://www.jfinal.com/doc/3-5

多看下 源码 :
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/Controller.java

2018-09-12 09:26

@枫 必须啊, 水印可以是文字还可以是LOGO图片的

2018-09-03 21:51

@年轻似水 业务不需要 秒级任务的话, 建议使用http://www.jfinal.com/doc/9-2 内置的Cron4jPlugin 更轻, 简洁

2018-08-31 08:50

@nbjgl http://www.jfinal.com/doc/5-15 new DruidPlugin(...).start();

2018-08-24 20:17

Model 中禁止写查询等操作, 而且还是自查, 转JSON时 getAll()等写法, 会被当字段属性被调的!! 然后查询的还是自己这个类, 又会被当属性调,,无限循环中..... 虽然默认有递归次数, 但是这样写, 肯定是不规范的!

只要记住一点, Model 中禁止写业务代码即可.

还有一点, 问题写在 [反馈] 栏目

2018-08-24 15:09

@tosur 说的第二个问题, 可以在 ActiveRecordPlugin , 启动后, 1建表, 2关闭它, 3关联mapping, 4启动它, 就相当于刷新了一下 ActiveRecordPlugin . 不过这些Plugin都非常灵活, 怎么用都可以

2018-08-24 15:01

@tosur 关闭有先后顺序的, 后进的先关闭.

2018-08-10 19:42

druid.stop() 也需要关闭下
我一般这样用:


public class DbPlugin implements IPlugin {
DruidPlugin druidPlugin;
ActiveRecordPlugin activeRecordPlugin;

public DbPlugin(DruidPlugin druidPlugin, ActiveRecordPlugin activeRecordPlugin) {
this.druidPlugin = druidPlugin;
this.activeRecordPlugin = activeRecordPlugin;
}

@Override
public boolean start() {
druidPlugin.start();
activeRecordPlugin.start();
return true;
}

@Override
public boolean stop() {
activeRecordPlugin.stop();
druidPlugin.stop();
return true;
}
}
使用: DbPlugin dbPlugin = new DbPlugin(dp, arp);

2018-08-10 10:43

线上用 nginx 了 ?
server里得加
proxy_set_header x-forwarded-for $remote_addr;

2018-08-09 21:52

@Snake8859 jfinal模版代码在后端运行的!!!
JS 代码在前端运行的, 把他们分开运行, 思路大约在下, 自己调下

var jDataArr= null;
#if(j)
jDataArr=[
#for(x, j.data)
{x.fieldName},
#end
]
#end
$.post(
ctx+"/admin/im/getFormList", //url
function(data){
var content="";
for(var i =0;i<data.length;i++){
content+="<div class='form-group'>"
content+="<label class='col-md-2 control-label' for='demo-text-input'>"+data[i].label+"</label>"
content+="<div class='col-md-2'>"
//content+="<input type='text' name="+data[i].fieldName+" class='form-control' value=''>"
content+="<input type='text' name="+data[i].fieldName+" class='form-control' value='"+(jDataArr?jDataArr[i]:'')+"' >"
content+="</div>"
content+="</div>"
}
$("#editForm").prepend(content);
},
"json" //数据格式
);