2019-09-17 11:10

模板在执行的时候,已然是在向客户端/浏览器发送数据了,也就是说一边执行一边发送数据

这个时候再 try catch 意义不大,所以,一定要确保模板输出是正确的

好在模板输出是一个很简单的工作,只是数据展示而已,不容易出错

如果一定要 try catch ,可以添加自定义指令,例如:
#try
....
#catch(....)
....
#end

但是不建议这么做

更简单的做法是继承 ErrorRender 并扩展它,在扩展的 ErrorRender 中可以做很多事情,最后通过配置 me.setRenderFactory(....) 用上自己扩展的 ErrorRender

2019-09-16 19:29

@zzutligang 得想个办法能在本地重现,这样才能快速解决掉,关键是我自己从来没碰到过这个问题

2019-09-16 18:16

我记得有个 SessionListener, 直接添加就好

2019-09-16 18:11

@nani 未登录也是这样得到 session , session 监听直接加上就好,符合 servlet 规范:
https://www.jfinal.com/doc/1-4

注意看文档的这个小节:
《12、添加 Filter、WebSocket、Servlet、Listener》

2019-09-16 18:04

getSession()

2019-09-16 18:03

@果汁仔 jfinal 提供的 jetty-server 仅限于开发,不能用于部署

如果希望开发、部署一体化,需要使用 jfinal-undertow,具体用法有十分详细的说明:
https://www.jfinal.com/doc/1-2
https://www.jfinal.com/doc/1-3

从 jetty-server 切到 jfinal-undertow 只需花几分钟时间,下载首页的 jfinal_demo_for_maven 参考一下

2019-09-16 17:39

@飞翔的灬格仔 下载未修改主的模板是啥意思? 模板为啥可以下载呢?

2019-09-16 17:38

部署时为什么会出现 jetty , 注意将这些依赖删除干净,或者将其在 pom.xml 中的 scope 配置成 provided,这样就不会打包进去

2019-09-16 17:34

异常已经很清楚了:
com.jfinal.template.TemplateException: "loginAccount" can not be null for accessed by "loginAccount.nickName"

Template: "/_view/_admin/common/_header_right.html". Line: 7

也就是说 loginAccount 这个对象为 null , 所以你的 _header_right.html 中的 #(loginAccount.nickName) 必然会有异常

loginAccount 这个对象一般是在拦截器中设定的,如果没有登录成功,那么这个对象为 null,所以需要改成:
#(loginAccount.nickName ??)
注意最后面的双问号,不添加这个双问号,在 loginAccount 为 null 时就一定会抛出异常

2019-09-16 11:52

stuCode 是一个字段,为啥不先为这个字段生成好值以后,一次性 update stu set stuCode #(stuCode) where ....

2019-09-15 10:16

UserBean 需要实现 java.io.Serializable 接口

public UserBean implements Serializable {
...
}

2019-09-12 17:02

@xiaoyaozi 可能是多个版本的 fastjson 有冲突

用到 jfinal weixin 项目的 MsgController 时,需要在 configRoutes 中配置 me.setMappingSuperClass(true)

升级一定要先看文档,内容极少, 5 分钟看完足够了:
https://www.jfinal.com/doc/14-1

2019-09-12 15:50

这个变量在老版本中是为了支持对于已存在的对象进行 AOP 的,例如:
User user = new User();
Enhancer.enhnace(user);

也就是说,对象的创建是用户自己,对象的增强是 jfinal。但是这个功能从来没有人反馈使用过,所以这个参数在后来的版本中去掉了

新版本只支持对接管对象进行增强,例如:
User user = Aop.get(User.class);

也就是说,对象的创建是交给 jfinal ,才能被增强。注意,新版本使用 Aop 完全取代了老版本的 Enhancer

2019-09-12 11:59

@旧城以西 这个取决于 json 转换使用的工具, jfinal 自带默认工具,转换时不依赖 model 的 getter 方法

而你自己的转换工具依赖于 getter 方法,假如你的 model 没有使用生成器生成 getter 方法,肯定转换不出来任何数据

具体多看一下文档,很简单的原理:
https://www.jfinal.com/doc/12-1

2019-09-12 11:57

刚看了一下最新版 jetty-server 源码,scanIntervalSeconds 这个参数看不出来对 JSP 支持有任何影响

如果你不想要热加载,将 scanIntervalSeconds 改成一个十分大的数也可以,例如 999999