2020-07-28 22:45

@錢勢惘導 这个问题我加入了备忘录,你的这段代码在你那工作是没问题, 我是担心换个场景可能有问题

因为我现在不确定你 hgetCounter 出来的值是否是通过 hincrBy(...) 方法设置的,因为 hgetCounter 是针对 hincrBy(...) 来做的

我担心你 hgetCounter 获取的是 redis 控制台命令 hincrby 设置的,也担心是 hset(...) 方法设置的

所以,这些我都要完全确定好才能改代码

2020-07-28 22:39

@kulan jfinal.sh 这个启动脚本中已经有注释说明如何来增大 JVM 运行内存,这个根 jfinal 显然是无关的, JVM 的启动参数而已

2020-07-28 22:23

你给出来的代码是 demo,很可能与实际不符,例如参数前后是否存在空格,这个因素对于这两种传参方式可能有影响

2020-07-28 11:52

先看一下控制台输出的 jfinal action report 中的 parameter 这一栏,如果是 key = value 这种格式,才可以使用 getBean、getModel、getPara ,否则需要使用 getRawData()

要这么用:
String json = getRawData();
Xxx xxx = FastJson.getJson().parse(json, Xxx.class);

原因是,你提交的数据是 json 形式,而不是 form 表单的 key = value 形式

这个纯属客户端提交的问题。 客户端以什么格式提交,服务端就要使用与之格式相对应的方式获取

2020-07-28 10:26

这套课程内容丰富,版本很新,而且还有配套源码与实战,很赞

2020-07-27 14:29

@kudychen 你碰到的异常是 400 , 而不是 404, 单步调试定位一下原因

2020-07-27 14:29

为了权衡得失,有些类型的 order by 是移除不干净的,这里已经说明了原因:
https://jfinal.com/doc/5-6

解决办法是使用 paginateByFullSql(...), 也即再多提供一条 sql

2020-07-27 14:25

@錢勢惘導 jfinal 几乎所有地方都留有扩展方式,当需求得不到满足时,优先扩展例如 Db 中的所有方法也是可以扩展的,能过继承 DbPro 然后配置 me.setDbProFactory(...);

2020-07-27 11:14

注意看控制台输出的 urlPara

不想支持这个参数加行代码
checkUrlRara(0);

或者加个拦截器也可以 @Befor( NoUrlPara.class)

如果希望所有请求都不支持 urlPara 配置为全局拦截器
me.add(new NoUrlPara());

2020-07-26 22:52

@过河 @杜福忠

今天看到俱乐部有位同学是通过在 package.xml 中加下面这几行代码解决的,十分简洁:
<!-- 项目 lib 目录下的第三方 jar 包全部 copy 到 lib 目录下 -->
<fileSet>
<directory>${basedir}/lib</directory>
<outputDirectory>lib</outputDirectory>
</fileSet>

建议这么来使用,如果你的 jar 包不在项目下面,可以将 {basedir}/lib 改成确切的路径

先收藏一波

2020-07-26 15:53

@拉不了屎了 你用的 jfinal 版本是好几年前的了,现在的新版本比老版本好用得多,升级也很方便,这里有专门的升级文档:
https://jfinal.com/doc/14-1

2020-07-26 15:52

@拉不了屎了 移除 fileUrl 是个好办法,赞

2020-07-26 15:11

ueditor 在初始化的时候会向后台发送请求来获取参数,你需要根据 ueditor 的官方文档来适当返回参数才可以,以下是 jfinal club 项目的处理方式:

/**
* UploadController 上传控制器,接管 ueditor 上传功能
*/
public class UploadController extends BaseController {

@Inject
UploadService srv;

/**
* 接管 ueditor 上传图片服务端
*
* 1:该 action 与 ueditor.config.js 中的 serverUrl: "/upload/ueditor" 对应
*
* 2:ueditor 页面加载时会向后端发送 "/xxx?action=config 请求用来获取服务端
*/
public void ueditor() {
/**
* ueditor 在页面加载时会向后端请求获取 config.json 内容
*/
if ("config".equals(getPara("action"))) {
render("/assets/ueditor/jsp/config.json");
return;
}

// 处理上传文件的代码省略 ...

}
}

注意以上代码中的 render("/assets/ueditor/jsp/config.json") 就是向浏览器返回的配置

2020-07-26 15:05

这个是因为 jfinal 的 devMode = true 时,会向控制台输出请求参数,而你的 base64 这个参数很长,System.out.print(...) 输出很耗时,所以才出现你碰到的情况

解决办法:
1:关闭 devMode, 配置一下 me.setDevMode(false); 即可

2:高版本的 jfinal 限定了参数打印的长度,可以升级到高版本,在这里可以看到参数限定输出长度:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/ActionReporter.java

2020-07-26 15:04

这个是因为 jfinal 的 devMode = true 时,会向控制台输出请求参数,而你的 base64 这个参数很长,System.out.print(...) 输出很耗时,所以才出现你碰到的情况

解决办法:
1:关闭 devMode, 配置一下 me.setDevMode(false); 即可

2:高版本的 jfinal 限定了参数打印的长度,可以升级到高版本,在这里可以看到参数限定输出长度:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/ActionReporter.java