2019-05-31 09:49

如果有拦截器的话,先在拦截器第一行调用一次: getFiles()

后面在controller 中就可以正常获取参数了,然后可以通过 getFile(...).getFile().renameTo(new File(新名字)) 将上传文件改名,甚至转移目录

2019-05-31 09:47

jfinal 高版本使用 Aop 、 @Inject 新功能完全代替了 Enhancer,所以相关文档也就改成了 Aop 、@Inject,但Enhancer、Duang 这两个工具类被保留下来,但其底层是在转调 Aop 的 API

从上可知,建议使用 Aop、@Inject,不建议使用 Enhancer

Aop、@Inject 各有优点,前者用于无法使用 @Inject 的地方,后者可以省代码,例如:
@Inject
Service service;

显然要比下面的代码要省:
Service service = Aop.get(Service.class);

尽可能去使用 @Inject ,省代码提升用户体验。 有些地方无法使用 @Inject ,这时就是 Aop.get(...) 出场的时候

@Inject 能被使用有个前提,那就是对象的创建是由 jfinal 负责的,例如 Controller 的创建是 jfinal 负责的,所以 Controller 中就可以使用 @Inject 注入业务层,由于业务层是在 controller 用 @Inject 注入的,进而在这种情况下 Service 的创建也是 jfinal 负责的,所以 Service 内部仍然可以继续使用 @Inject 一直注入下去

总有些对象的创建并不是 jfinal 接手的,例如 jfinal club 中的 AuthAdminKit , 所以它的内部就必须要使用 Aop.get(...)

2019-05-30 12:03

下载首页的 jfinal demo for maven ,将其按照 maven 项目导入到 eclispe 中, 然后再启动

你碰到的问题可能是日志没配置好,造成有异常但没有输出

这个没有什么好的技巧,按文档来就可以了

2019-05-30 11:54

@wdl6949 根据文档来,model 是自动的,Db 可以使用 Db.use(dsName)

2019-05-30 11:26

确实有问题,这个是由于 jfinal 新版本对多主键 API 添加了字符 's'

添加这个 's' 也是迫不得已,因为在 JDK 8 之下编译出来的 API 会出现类型转换异常,与单主键区分开来加了 's' 以后就没问题了

文档更新漏掉了这里,感谢你的反馈

2019-05-30 00:53

jfinal 4.1 已经改进过这个地方,可以直接升级到 4.1,然后删掉你自己的添加的代码:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/render/TextRender.java

如下代码所示, setCharacterEncoding 方法调用前判断了 contextType 中是否已经设置过了 charset:
if (ct.indexOf("charset") == -1) {
response.setCharacterEncoding(getEncoding());
}

2019-05-28 21:34

@pigleter 单步调试一下 Redirect301Render.java 内部代码,记得有结果后回来反馈一下

2019-05-28 21:08

@mrbai2018 既然是没有调用 ModelRecordElResolver.init(servletContext);

那么,找到一个合适的地方,调用一下上面的代码

2019-05-28 21:07

这个细节部分我也不记得了,jfinal 应该是没做转换的,可能是你配置的 nginx 做了转换

你可以这样测试一下请求: http://www.aaa.com 看会不会自动变成 https://www.aaa.com

2019-05-28 17:54

如果是单独使用 Active Record,可以引入独立的 maven 配置,已发布到 maven 中心库:
https://mvnrepository.com/artifact/com.jfinal/activerecord/4.0

创建 getStatus() 方法在这个方法中进行翻译即可,但你要确保读取值的时候这个方法被调用了,如果用的是 jfinal 的 enjoy 引擎那么是会调用这个方法的,如果你用的别的模板就得另想办法

如果找不到办法,可以单步调试一下,了解一点点细节解决起来很容易

2019-05-28 16:40

目前还没有,这类功更多是前端实现的,jfinal 处在后端,整合一个这种前端实现应该很容易

2019-05-28 12:28

参考文档中或者 jfinal demo 提供的 jfinal.bat

2019-05-28 11:05

取消关注的那个方法中没有调用 renderNull() , 所以 jfinal 会默认帮你调用一个 render(view) 规则是:
finalView = baseViewPath + viewPath + view;
render(finalView);

2019-05-28 11:03

@sky23456 restful 参考:
http://www.jfinal.com/share/230
http://www.jfinal.com/feedback/415

2019-05-28 10:55

jfinal 这八年来一直在为提升后端开发效率在努力,而 jbolt 补足了前端开发效率提升的短板

希望 jbolt 在前端开发提速方面带来更多创新,让后端开发者在写前端代码时也像写 jfinal 一样轻松愉快