2019-05-07 11:41

这个与富文本无关

只与提交表单的 enctype 配置有关,ajax 请求也可以配置,找到那个配置的地点

2019-05-07 10:06

@haoran789 我看到你有一个 new RoleController()

controller 的 new 是要交给 jfinal 的, new 出来以后要初始化,否则是用不了的

例如,你在 new 出来的 RoleController 中使用了 setAttr 方法,而这个方法底层是用的 request.setAttribute(....), 而 request 是 null, 所以会引发 NPE

因此,我前面讲的,通过单步调试分分钟就可以定位到是 setAttr 用到底层的 requset 对象为 null 值

2019-05-06 16:34

惊现大神

js 对 long 精度的丢失是个麻烦事,这个方案十分简洁

2019-05-06 15:43

调试报签名错误,那必定就是签名错误,不要相信眼睛,要相信逻辑

2019-05-06 15:43

NullPointerException 没有什么好的办法,老老实实单步调试,看哪个对象为 null 引发的,分分钟解决

2019-05-06 15:41

定时任务本身就是在一个独立的线程中,一般没有创建新线程的场景

非得要这么用的话,当然可以,这个是 Java 不是 jfinal 的规则

2019-05-06 15:40

@absir 字符 # 可以直接输出,不需要转义,例如:
#abc

再例如:
##

你的代码之所有碰到这个问题,是因为字符 # 后面紧跟了一个 enjoy 关键字,例如:
#if
#for
#end

如果确实要原样输出这些代码,可以有下面这些办法,选其一:
1:在字符 # 与关键词之间换行,例如:
#
if(edit && edit.allowPath('#(att.path)'))")

2:用输出指令输出,例如:
#("if(edit && edit.allowPath('#(att.path)'))")
当然,也可以只输出一小部分内容:
#("#if") (edit && edit.allowPath('#(att.path)'))
甚至像你的代码中类似,只输出一个字符:
#("#") if (edit && edit.allowPath('#(att.path)'))

3:用原样输出将需要的地方包起来,例如:
#[[
#if (...)
...
]]#

最简单就是第一种方式,回车一下搞定

2019-05-06 12:26

可以嵌套,用法在语法上没错,注意路径与文件名,还有 if 逻辑要确保为真

可以先这么来测试一下:
#if(true)
#include("security/sec.html" )
#end

2019-05-06 12:25

@hxu 这里的重点是,jfinal 的数据库操作是对 JDBC 的极薄封装,性能在理论上接近 JDBC,性能的问题需要从别的方面优化,而不是 jfinal 层面

2019-05-06 11:53

这个只能优化 sql, jfinal 内部只管将你的 sql 和参数扔给底层的 JDBC,不会做任何其它动作,理论上性能接近 JDBC

for 循环内查询要尽量避免,例如:
1:使用关联查询,消灭掉 for 循环,多条 sql 变成一条 sql
2:使用缓存,直接从缓存取数据,避免重复查询数据库

还有很多其它优化手段,例如:
1:建立索引,让所有 where 条件运行在索引之上
2:sql 不要使用 select * 减少 IO,尽可能使用 limit 尽早排除掉不需要使用的数据

2019-05-06 10:31

@年轻人 大致如下:
// 创建一个自己实现的 writer
Writer writer = new MyWriter();

// 将创建好的 writer 放入一个 static 变量,便于随时获取
WriterKit.set(writer);

// 切换 writer
ActionReporter.setWriter(writer);

// 随时获取
Writer writer = WriterKit.get();

2019-05-06 10:00

@qyq1103 tomcat 部署不会理会 mainconfig 中的 main 方法,而是通过 web.xml 中配置的 JFinalFilter 入口启动的

2019-05-06 09:33

在 jfinal 这端,较新的版本不会出现文件名乱码问题

很可能是你的 tomcat 或者 linux 配置问题

2019-05-06 09:32

要看你部署时用的什么 server,如果是 tomcat 参考:
https://www.jfinal.com/doc/1-7

如果是 jfinal undertow 参考:
https://www.jfinal.com/doc/1-3

开发部署都建议使用 jfinal-undertow,实现一体化

2019-05-04 10:49

如果是响应 json 就 renderJson()
如果是响应 xml 就 renderXml(...)
如果是响应 html 就 render(...)