2016-07-26 14:58

c3p0 太老了,换 jfinal 提供的 DruidPlugin 分分钟解决问题

2016-07-26 14:57

模板路径的问题,jfinal 手册里有明确地说明,建议下载看看。在此我只提一下 render 所使用的模板与三个因素有关:
1:在 configConstants(...) 使用 me.setBaseViewPath(...) 配置所有模板的基础路径

2:在 configRoutes(...) 使用 me.add("/blog", BlogController.class, "path") 配置的第三个参数指定了 BlogController 所使用的模板路径。第三个参数省略时默认与第一个参数值相等。

3:在 render("path/index.html") 指定的 path 路径

4:前面的三种路径会拼接起来,形成最终的路径与模板。有一个例外要注意:第二个因素与第三个因素配置中,如果参数以 "/" 打头,会自动去根路径下面,相当于前一个因素失效。所以在配置第二、第三个因素时,仔细要注意一下是不是需要以 "/" 打头。

5:最后,出现找不到模板文件的情况,只需要看一下控制台异台,就能知道 jfinal 是去哪里在找模板,修改错误也会很容易。

2016-07-26 14:50

本质上来说,ueditor 的使用与框架是无关的,所以,只需要按 ueditor 提供的文档去配置一下就可以了,去官网下载一个 java/jsp 版本的 ueditor,然后他有详细的文档告诉你如何去配置。

jfinal 社区也在使用 ueditor,社区将 ueditor 的请求全部接管了,如果有需要的话,可以去群里找群主要这部分源代码。以后我也会将这部分代码全部公布出来

2016-07-26 11:34

标准的 maven 项目启动的时候,第一个参数不同 WebRoot,而是 src/main/webapp,所以要这样: JFinal.start("src/main/webapp" 80 "/" 5); 如果是用 eclipse 的 Debug configuration 启动,在 Argument 的 Program arguments 中配置为: src/main/webapp 80 / 5

2016-07-25 21:17

最关键是要提供控制台输出的异常信息,通常根据异常就能很容易知道错误原因

2016-07-25 16:00

其实就是将 freemarker 的写法翻译成 jsp 就可以了,这里我提供了一个现成的可以下载: http://pan.baidu.com/s/1dE3xnNV

2016-07-25 14:55

@绿色的小苹果 爽的功能太多了,一时不知道从何说起,多多关注社区动态,了解最新的 jfinal 发展信息 ^_^

2016-07-25 14:54

@小飞象 既然没有 getter、setter,你用一下 getModel(TagInfo.class, "") 就好了,何必去用 getBean(...)?

2016-07-25 13:07

@绿色的小苹果 2.3 已经开发完了部分功能。jfinal 社区功能完善后,就继续开发 jfinal 2.3

2016-07-25 11:59

@小飞象 报啥异常,getBean 需要先使用 jfinal 2.3 的生成器,为 model 生成 getter、setter 方法

2016-07-25 11:19

jsp 中可以任意书写 java 代码,这种诱惑将导致部分用户写出业务与 view 层混杂型的代码,并且 jsp 由于时间久远,有些用法不是很简洁,而且在早期 jsp 对 jfinal 的 Model、Record 对象输出支持不好,后来是通过引入了 ModelRecordElResover 来支持的。此外,jsp 不支持 layout 功能,这个在模板引擎中已经是标配。

而 freemarker 不允许在模板中写 java 代码,避免了 jsp 在这方面的缺点,并且 freemarker 的学习成本很低,虽然功能十分地多,但常用的功能就那么几个,通常学一下常用功能即可上手开发。比较偏门的功能在需要的时候翻翻手册即可。

最后,建议你学学 freemarker 的使用,主要学一下输出指令与控制指令,基本就可以上手开发了,最好是看看 JPress 这个项目中的用法,比看手册要快,15 分钟学完主要功能用法

2016-07-25 11:10

@海哥 可以尝试跟那些做收费版的人合作来做收费版的,然后你们分成就好,wordpress 的模板已然就是一个市场了,网上很多卖模板的,用户看上自己喜欢的模板是愿意花钱买的

2016-07-25 08:54

@海哥 可否直接将比较知名的 wordpress 模板,先人工处理一下,变成 JPress 的模板库? 然后 JPress 官网提供一个 wordpress 模板频道,让用户可以下载使用这些人工转换过的模板

2016-07-24 18:18

如果是要控制某个用户在某个时间段内发送的消息数量,给个简单的方案:
1:使用 jfinal 提供的 EhcachePlugin 插件,记录用户发送消息的数量

2:关键在于配置缓存的空闲时间,假定需要控制用户在 10 分钟内的发送总量
a:配置 timeToIdleSeconds = 600,表示该缓存空闲 10 分钟后会自动清除,所谓空闲是指缓存没有被使用过的时间段。在你的业务中,也即表示用户没有在发送消息的时间长度的过期时间
b:配置 timeToLiveSeconds = 0,表示缓存最大存活时间为无穷大,也即表示过期时间全部交给前面的 timeToIdelSencond 来控制

3:当用户发消息过来时,先用Integer msgCount = CacheKit.get("msgCount", userName) 获取到的是用户发送的消息总量,如果超出允许的消息数量,则阻止发送,
否则允许发送。

4:使用 CacheKit.put("msgCount", msgCount + 1) 将发送量加 1 并缓存,当 msgCount 为 null 时,取值为 0 即可。

5:此方案的好处是既控制了发送量,也兼顾了时间段控制,如果用户超过 10 分钟没有再发送,缓存会自动失效,又再重头记数。此方案还有一个好处是时间段是动态的,时间段总是与最近的空闲时间关联,而不是与过去某个固定的时间点关联,也控制了一直在发消息的行为