2018-04-04 11:15

@jflyx SYS_IOT_OVER_70794 这张表没有主键,添加上主键即可

如果不需要生成这张表的 model ,用 addExludedTable(...) 或者继承 MetaBuilder 覆盖 isSkipTable 方法去实现

2018-04-04 10:43

render 是渲染你当前项目中的模板,forwardAction 是将请求转发给当前项目的另外一个 action,而你使用的两个参数既不是当前项目的模板,也不是当前项目的另一个 action

redirect 是将请求重定向,状态值是 302,而 redriect301 也是重定向,但状态值是 301,具体含义找下 http 协议的相关资料即可,jfinal 在此只实现 http 所要求的功能,而并不会去发明 302、301 这种状态值的含义

页面跳转为什么不在页面使用 a 超链接? 跳转到别的网站与后端代码本质上是无关的

2018-04-04 10:26

jfinal 定位于 MVC + ORM 框架,没有这类功能

但周边很多 jfinal 开源项目是有这个功能的,在这里搜索一下:
https://gitee.com/search?utf8=%E2%9C%93&search=jfinal&group_id=&project_id=&type=

2018-04-03 23:58

@libofei 一般在开发时我会设置为这样的形式: "./xxx.log"

这样以 "./" 开头就会生成在项目根路径下,但这个配置在部署环境下不起作用,因为这个与你运行项目时的当前路径有关

2018-04-03 23:43

@libofei 设置成绝对路径,例如:
D:/mylog/myproject.log

2018-04-03 23:17

如果是 linux 之下,注意 log4j.properties 配置的文件路径要是以 "/" 打头的绝对路径,否则文件生成的地方与你启动项目所在的当前目录有关

还有一种情况是 log4j.properties 文件配置有问题,在首页下载 jfinal demo,直接拿到其中的 log4j.properties ,修改成符合自己要求的再用

2018-04-03 18:48

@溪碧旗 "." 只能出现在 URL 中的问号挂参中,例如:
aaa?abc=xyz.html

此外的任何地方都被当成是静态资源,直接扔给了 tomcat jetty 等容器,jfinal 不做处理

如果希望做处理,可以添加 Handler 来处理,默认是不处理的

2018-04-03 18:43

以 .html 打头的这些是静态资源,jfinal 不干预

类似的还有 .js .css .png 等所有存在 "." 字符的 url

2018-04-03 18:37

单步调试定位原因,当事人都猜不到,其他人就更没法猜了

先将 c3p0 换成 druid 看看

2018-04-03 16:17

前面你读的是 user,后面读的是 jdbcUrl,当然有所区别

原因是你的 a_little_config.txt 用微软的文本编辑器保存过,而这个东东对 utf8 格式的文本格式采用了不同的规则,进而 jdbcUrl 这个 key 值被其变成了 "dbcUrl",也就是少了一个字符 "j",自然就读不到了

解决办法是,在 jdbcUrl 这一行前面再回车一下,多给出一个空行

还有一个办法是用别的编辑器来创建这个文件,再保存

2018-04-03 15:38

这是目前最简洁优雅的打包整合方案了,感谢你的分享

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 做分流就可以了,可以重用