2020-04-14 16:23
@e_star 一旦模板引擎提供像 jsp 一样支持直接写 java 代码的功能,立即就会有很多人用上
结局与 jsp 中大量使用 java 代码是一样的,维护起来极端痛苦
view 被抽象成 view ,就是为了专心展示数据的,而不是用来书写 java 逻辑的,复杂 java 逻辑在业务层都写完了
2020-04-14 13:47
@geek206 jfinal redis 插件仅有几个类文件,将之复制到你自己的项目中,然后手动改改就可以的,而且你还可以任意添加新的功能
2020-04-13 17:26
@pandalam ajax 发请求的时候, contentType 还有一个用途是针对上传文件,我记得要设置为:
contentType : false
具体记不清了,这里提出来一下,以便于你将来使用 "ajax 上传文件" 功能时关注这个知识点
其实我本来是对前端的事情不感兴趣,不会关注的,但 jfinal 迭代 9 年,后端极速开发的问题早就解决完了
现在用 jfinal 开发项目 95% 的时间都花在前端上,这让我不得不着手解决前端的问题
jfinal 会为俱乐部会员提供一个用于二次开发的前端解决方案
2020-04-13 17:22
@pandalam getModel、getBean 都是针对表单提交的,不需要这句
此外,要分清 contentType、 dataType 这两个参数的用途,前者是针对发送数据的,后者是针对返回数据的,很多人把后者当成是控制发送数据类型的,从而引发很多问题
2020-04-13 17:08
你需要的代码如下:
$.ajax({
type: "post",
url: "http://localhost/action",
contentType: 'application/json; charset=UTF-8', // 关键参数
dataType: 'json',
data: formToJsonString("表单id"),
success: function(ret) {
}
});
function formToJsonString(formId) {
var paramArray = $('#' + formId).serializeArray();
// 表单参数转 json 对象
var jsonObj = {};
$(paramArray).each(function() {
jsonObj[this.name] = this.value;
});
// json 对象转 json 字符串
return JSON.stringify(jsonObj);
}
其中的 contentType 为 'application/json; charset=UTF-8', 是最关键的参数。这些代码在你 jfinal club 项目的 jfinal-com-4.0.js 中都有
2020-04-13 10:24
当成是多数据源来使用就可以了,每个用户一个数据源:
https://jfinal.com/doc/5-14
如果是多用户要共享相同的 model , 那么可以用拦截器切换数据源,大至如下:
Connection conn = DbKit.use(configName).getDataSource().getConnection();
DbKit.setThreadLocalConnection(conn);
try {
inv.invoke();
}
finally {
DbKit.removeThreadLocalConnection();
}
注意上面的 DbKit.use(configName) , 这个 configName 参数就对应了不同的数据源,你要想办法动态获取这个值,不同用户登录你是能获取它的账号的,通过账号与数据源建立关联即可
2020-04-12 20:57
@netwild 你这个问题很有代表性,我特此写了一篇分享:
https://jfinal.com/share/2037
2020-04-12 20:09
配置 undertow.hotSwapClassPrefix 这个的思路是对的,但配置的值不对
jfinal 自身已经配置过了,所以你配置的 com.jfinal.plugin.activerecord. 完全是多余的没有必要
你要配置的是异常中提示的 "com/jfinal/plugin/activerecord/IBean" 的实现类,也就是实现了 IBean 接口的类
一般来说是你生成的 base model 实现了 IBean 接口,较大概率是由于你的 base model 打包到了 jar 之中,而不是在源码中,所以,你需要通过配置:
undertow.hotSwapClassPrefix=xxx.yyy. 来解决
其中的 xxx.yyy. 指向你打好的 jar 包中的,实现了 IBean 的 base model