2018-12-11 16:22

代码十分简洁,感谢分享

2018-12-11 16:22

可能是这个平台上的 JVM 的这个 API 有 bug

建议自己写一个 MyCaptchaRender extends Render

然后用的时候这样:
render(new MyCaptchaRender(...));

网上很多验证码代码,放入 MyCaptchaRender 即可

2018-12-10 17:49

@macaque 原来如此,添加这几行代码:
UndertowServer.create(...)
.addHotSwapClassPrefix("redis.clients.")
.addHotSwapClassPrefix("org.nustaq.")
.start();

有关 redis 的支持,今天会发新版本支持,然后你就不需要上面两行代码了

2018-12-10 17:42

@macaque dev 改成 false 后不支持热加载了

应该是你在 UndertowServer.start() 方法调用之前就有别的代码进行了别的操作

UndertowServer.start() 启动的 jfinal 世界与你自己在这之前的代码处在两个世界,分别由不同的 class loader 加载

2018-12-10 17:39

Article 这个类在那里? 是不是你在 start() 之前触发了类加载?

2018-12-10 17:38

HTTP 401 错误是指未授权 Unauthorized,对方服务器不让你访问,仅此而已

2018-12-10 17:37

你的这个 article 应该是处在 jar 包之中,jfinal undertow 默认只为 target/classes 下面的资源提供热加载

所以,需要配置一下:
UndertowServer.create(...)
.addHotSwapClassPrefix("com.newrank.")
.start();

2018-12-10 15:37

@戒不掉 单步跟踪一下问什么会进入 JspRender

2018-12-10 13:52

Java 基础要好,然后最好是要熟悉一下 Servlet、Filter、HttpServletRequest、HttpServletResponse 这些 java web 标准组件的基本用法,jfinal 的 web 部分仅仅是对上述几个组件的极薄封装

然后数据库部分,一定要熟悉 JDBC,jfinal 的数据库操作部分也仅仅是对 JDBC 的极薄封装

然后 enjoy 模板引擎的使用,只需要稍微浏览一下文档就好,这部分是 jfinal 独创的算法与实现方式

想深入学习 jfinal 架构,最好的办法是读源代码,而读源代码的方式是在 jfinal 内部设置断点看程序如何动态运行,理清程序执行的脉胳

最后再做个小广告,加入 jfinal 俱乐部可以更深入更快速学到精髓,俱乐部有直播课、最佳实践项目优质资源

2018-12-10 13:47

@小言 多看几眼 demo , 然后浏览一下文档频道,很快就上手使用了

2018-12-10 13:46

@戒不掉 这种不确定出现的问题,很可能是多线程并发问题,例如你是不是在某处共享了 getRequest() 或者 getResponse() 出来的对象?

2018-12-10 12:08

request.getRequestDispatcher(view) 这句是否返回了 null ,从而 null.forward(...) 就出异常了?

2018-12-10 12:07

IDEA 下使用 jfinal 只需要将 jfinal demo for maven 当成是标准的 maven 项目导入即可,不需要任何多余的配置动作

jfinal 项目是符合 java web 的普通 java web 项目,不要特殊看待

下载首页的 jfinal demo for maven,数据库建好,直接导入一下,然后运行 DemoConfig 中的 main 方法即可

2018-12-10 12:04

单步调试进入 JspRender,找到是哪个变量为 null 值引起的,然后再解决

2018-12-10 12:03

@shayne 记错了, 2018.11 是最新版本了,下载首页的 jfinal demo 跑一跑试试,用排除法解决问题,先排除掉是 jar 包的下载错误问题