JFinal 社区 feedback 反馈栏目

热心反馈、提升品质

    JFinal 社区反馈栏目,是用户向作者提出自己在项目使用过程之中碰到的问题或者改进建议,例如某某项目中某个功能不好用,又或者自己有更好的方案反馈给作者,项目作者可以有针对性地进行权衡和改进,有助于打造高品质的项目,从而也为用户带来更大价值。

评论区

jikes

2017-03-03 10:53

@JFinal 你说的这种方式我已经试过,也可以用,但是系统结构上有些问题。我需要在web中初始化一次jfinal,然后在需要调用数据库时,还需要初始化一次jfinal,我不知道是不是我没有理解你的设计思路?有没有其他更好的方法。

JFinal

2017-03-03 11:45

@jikes 非常确定的是: 只需要初始化一次就好,再仔细看一下 jfinal 手册,有关 ActiveRecordPlugin 用于非 web 项目的那一章

那一章的标题说是用于非 web 项目,但更贴切的说法应该是:自行初始化及启动 ActiveRecordPlugin

jikes

2017-03-03 12:29

我是用在web项目中

yeyu123

2017-03-09 14:02

我是用MyEclipse搭建的jfinal框架,但是为什么每次请求时要在URL中加上项目名,比如localhost:8080/hello ,输入这个会说访问不到地址,但是输入localhost:8080/jfinal_demo/hello就可以,jfinal_demo是工程名

JFinal

2017-03-09 14:44

@yeyu123 将项目的 context path 弄成 "" 即可:https://my.oschina.net/jfinal/blog/353062

哈小吉

2017-03-12 10:06

在用LeanCloud第三方推送时,报出java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.SerializeConfig.put(Ljava/lang/Object;Ljava/lang/Object;)Z
at com.avos.avoscloud.AVObject.(AVObject.java:68) 这个错误,new AVObject 这个的时候出错,其他框架spring之类的测试能通过,这是为什么呢?

JFinal

2017-03-12 11:44

@哈小吉 异常信息中只有 fastjson 与 avoscloud 相关的异常,注意一下这两个第三方包所使用的版本依赖是否正确

qiushui90

2017-03-22 23:40

@JFinal 波总,能不能加个搜索呀,以后有问题都先来搜一把

JFinal

2017-03-23 10:31

@qiushui90 还没顾上呢,好多事情

hanleytang

2017-04-06 10:23

日志框架是否可以更改为 logback ?

JFinal

2017-04-06 10:28

@hanleytang 扩展一下 LogFactory,然后通过 me.setLogFactory(...) 切换成你自己喜欢的日志框架,包括 logback

hanleytang

2017-04-06 12:09

@JFinal 请教下,这个框架是否可以支持postgresql 事物,在文档中没有特别说明是否支持这种数据库的事物。

JFinal

2017-04-06 12:13

@hanleytang postgresql 也是在 jdbc 对其支持,必然支持事务, just do it

hanleytang

2017-04-06 13:12

cp同学

2017-05-04 15:24

想问问那个模拟交易的平台上面的排行榜的功能无法使用了,这个可以下浮吗

JFinal

2017-05-04 20:17

@cp同学 那个项目不是 jfinal 官方做的,给作者发送私信,联系一下作者

Rocky

2017-06-08 19:04

Jfinal Template 怎么获取请求的url参数

JFinal

2017-06-09 14:21

@Rocky 最直接的办法是在 action 中通过 setAttr(...) 将 url 参数传过来,也可以通过 keepPara() 方法将参数传过来

还可以通过拦截器来做这个事

Rocky

2017-06-12 09:18

@JFinal 如果我是不经过action ,直接页面跳转页面,那岂不是没有解决办法方案了,这样的话 模板对我来说,用不了!

JFinal

2017-06-12 10:36

@Rocky 必然有办法,你用一个 YourHandler 接管请求,不走 action,然后通过 request.setAttribute(...) 传递,再这样:
RenderManager.me().getEngine().getTemplate(....).render(...) 即可

ywb21201

2017-07-19 09:21

请问各位大神,生成二维码时,采用getResponse().getOutputStream()的方式输出,抛出了下面的异常,该怎么办?
com.jfinal.render.RenderException: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:160)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:99)
at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:48)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:495)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:767)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1347)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:603)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:211)
at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:157)
... 22 more

JFinal

2017-07-27 21:33

@tuzqone 使用 jfinal 3.1 去支持中文文件名,前提是你的中文文件名在 linux 系统下本身不是乱码,如果本身就是乱码的,那在程序中也会是乱的

wu482525

2017-08-17 12:05

Jfinal的getBean方法怎么获取表单提交的List集合的值,通过beanName.attrName.listAttrName[index].attrName 这种命名后台也获取不到啊?

JFinal

2017-08-17 12:15

@wu482525 目前不支持,建议写个 getBeans(...) 方法进行扩展,大致如下:
List list = new ArrayList();
for (int i=0; i<size; i++) {
Xxx xxx = getBean(Xxx.class, "beanName[ " + i + "]");
list.add(xxx);
}
return list;

然后表单里面的 name 做成如下的形式就可以了:
name="beanName[0].attrName"
name="beanName[0].otherField"

name="beanName[1].attrName"
name="beanName[1].otherField"

热门反馈

扫码入社