2020-05-26 16:42
@平平 比较麻烦的方法是在链接之前添加 #(CXT),然后添加一个 ContextPathHandler :
configHandler(Handlers me) {
me.add(new ContextPathHandler("CXT"");
}
所有页面涉及的地方都需要
#(CXT)
比较省事的办法是使用 html 的一个 base 标签:
https://www.w3school.com.cn/tags/tag_base.asp
当然,强烈建议不要这么用,因为 context path 这个东东本身就是一个失败的设计
如果一定要这么用,可以用 nginx 代理,将某个 url 前缀代理给 jfinal 项目,jfinal 项目仍然原封不动, 让 nginx 重写 url 规则
2020-05-26 16:37
@luffy999999999999 改成 replace(".", File.separator) 试试
这个不是 jfinal 提供的类, 你们自己的代码出的问题,自然是你们自己要保障是正确的
2020-05-25 14:05
@信阳 应该是你查询出来的数据没有释放造成的,数据源本身的 connection 就是有上限并共享的,不会出现内存不断上涨的情况
2020-05-24 21:14
这里的关键在于,如何在前端用 js 发送 json 数据的请求:
$.ajax({
type: "post",
url: "http://localhost/action",
contentType: 'application/json; charset=UTF-8', // 关键参数
dataType: 'json',
data: formToJsonString("表单id"),
success: function(ret) {
}
});
以上代码的关键在于:
contentType: 'application/json; charset=UTF-8'
否则就不是 json 数据类型的请求
最后,js 将数据转成 json 的代码如下:
function formToJsonString(formId) {
var paramArray = $('#' + formId).serializeArray();
// 表单参数转 json 对象
var jsonObj = {};
$(paramArray).each(function() {
jsonObj[this.name] = this.value;
});
// json 对象转 json 字符串
return JSON.stringify(jsonObj);
}
有了 json 这个中间工具,一切都简单了。
上述代码在 jfinal 俱乐部福利中都有,有需的话可以加入俱乐部获取 jfinal.com 官网代码
2020-05-24 21:11
你的数据带有数组,不太好处理,需要自己写点代码
建议在前端用 js 将数据先转成 json ,然后传递 json 到后端,后端接收代码大至如下:
String jsonString = getRawData();
Map map = FastJson.getJson().parse(jsonString, Map.class);
以上就将 json 转成 Map 了, 如果你是数组,还可以转成 List ,例如:
List list = FastJson.getJson().parse(jsonString, List.class);
List、Map 再转成 Model 是很容易的,看一下 Model 中的一些 setter 方法就知道如何转了