2018-04-03 15:17

@伯洋 用 actionKey,可以拆分去弄,代码美观取决于写法:
if (actionKey.equals("/user/login"))
loginValidate();
else if (actionKey.equals("/user/login"))
....
然后将 loginValidate() 这些独立去实现

2018-04-03 15:14

@伯洋 还有一个方向是自定义注解,然后在拦截器中通过 inv.getMethod().getAnnotation(...) 拿到注解,自由定义 Validator

可以多尝试一下,jfinal 当然也曾经考虑过很多其它方案,只是做出来以后不是极简,或者学习成本太高,所以都废弃了

例如,jfinal 曾有一个设置,是这么来用的:
@Validator("userName", require=true, errorMsg="用户名不能为空")

但这都不如在现在的设计之下,通过 API 引导式来得方便,现在的设计,可以用
this.
这样就自动提示有哪些 validateXxx 系列的方法,就像点菜一样,不仅降低了学民成本,而且 API 引导式可以避免输入性错误

2018-04-03 14:43

Validator 主要用于 form 表单提交,尤其是提交的数据比较多的情况

一般情况在 controller 中直接 if 判断就完事了,不需要写 validator

此外,还有一种用法是表单提交全用 ajax,所有验证在 Service 层来做,你手头的 club 代码里头 LoginService、RegService 就是这么用的

注意这个 LoginService、RegService 同时也用了 Validator,是当时开发的时候先用了 Validator,其实只要在业务层中做一次就可以了

2018-04-03 14:40

用同一个 Validator ,然后里头用 actionKey 做分流就可以了,可以重用

2018-04-03 12:13

maven 中心库可以下载所有版本的 jfinal :
http://search.maven.org/#search%7Cga%7C1%7Cjfinal

2018-04-03 12:01

@问你一声 搞定后在分享频道分享下啊,这个需求还是很多人需要的

2018-04-03 11:58

单步调试一下,看是什么 sql 有问题,异常信息里面没有实质有用的信息量,没人可以猜到原因

2018-04-03 11:57

@问你一声 ajax 拿到的是后端用 enjoy 生成好的整块的 html 片段,所以不需要 js 拼接

如果后端是 renderJson 过来的 Json ,这才需要 js 去拼接,拼接很麻烦

2018-04-03 11:42

@问你一声 谁说要拼接了?

2018-04-03 10:55

HttpKit.get(url, ...) 或者 HttpKit.post(url, ...)

2018-04-03 10:54

选择一级下拉的时候触发一个 ajax 请求到后端,后端得到一级的 id 号,去找二级的列表,然后用 enjoy 渲染成 html 片段

浏览器这端得到 html 片段以后,直接 $("#二级").innerHtml = 片段替换一下即可

注意两点:
1:发 ajax 请求时,类型设置为 "html" 而不是 "json"
2:后端直接 render("二级.html"); 而不是 renderJson();

2018-04-02 21:38

@libofei 如果是仿照 FileRender,没有必要支持断点续传,所以 FileRender 中的大部分代码可以去掉

2018-04-02 21:18

用下 renderFile(...) 或者仿照 renderFile 所使用的 FileRender 自己扩展一个也可以

2018-04-02 20:17

@syso 不是没生成,而是生成在了某个路径下面,你没注意而已,看一下控制台输出的文件生成的路径, copy 这个路径,然后去资源管理器里面找一下

根据错误路径,再改成正确的即可

2018-04-02 19:31

@13540894015 单步调试一下,看是哪个 sql 出了问题