2019-11-19 08:03

我这边部署jre,提示tools.jar在classpath中找不到

2019-09-13 08:32

@walking_ 粒度到前端的按钮确实不好做,可以仿照shiro在模板里用一些自定义指令判断是不是拥有某项功能权限。我觉得权限到功能应该是足够了,角色拥有多个权限,用户拥有多个角色

2019-06-25 11:18

我将intercept方法修改成如下:
@Override
public void intercept(final Invocation inv) {
try {
invoke(new MyMethodInvocation(inv));
} catch (UnauthorizedException e) {
doProcessUnauthorization(inv.getController());
} catch (UnauthenticatedException e) {
doProcessUnauthenticatedException(inv.getController());
} catch (Throwable e) {
if (e instanceof ActionException) {
ActionException ae = (ActionException) e;
inv.getController().render(ae.getErrorRender());
} else {
throw new RuntimeException(e);
}
}
}

2019-06-25 11:08

采用这种方式整合,我在action中使用renderError(404),也显示的是500错误异常信息

2018-12-11 23:44

可以看看我之前的反馈。http://www.jfinal.com/feedback/3494

2018-12-11 23:43

曾经遇到过这个问题,不过好像是老版本,不清楚用的哪个版本的jfinal,不知道哪个版本之前验证码的字体名随机数组中使用了linux没有的字体,导致jvm崩溃。后来好像报过bug,波总改了。我在每改之前是判断操作系统类型,根据操作系统类型初始化字体数组中的字体名。linux我用的Font.SERIF之类的 你可以看看源码

2018-12-02 12:23

@JFinal 我已经把模板路径配成默认的webapp根目录了,模板也在。还是一样的问题。应该我是有一个子模块,获取webapp去找父模块的/src/main/webapp了。这应该怎么解决。项目的目录结构是这样的
├─jfinal-starter-web
│ ├─src
│ │ └─main
│ │ ├─java
│ │ │ └─cn
│ │ │ └─edu
│ │ │ └─nxu
│ │ │ └─mjl
│ │ │ ├─config
│ │ │ ├─controller
│ │ ├─resources
│ │ └─webapp
│ │ ├─templates
│ │ ├─demo.ftl
│ │ │ └─main
│ │ └─WEB-INF

└─src
└─main
└─webapp**(去找这个目录了)

2018-12-02 11:21

我找到原因了
ResourceManagerKit中的 public static ResourceManager buildResourceManager(String resourcePath, ClassLoader classLoader) 方法

public static ResourceManager buildResourceManager(String resourcePath, ClassLoader classLoader) {
CompositeResourceManager ret = new CompositeResourceManager();
String resourcePathArray[] = resourcePath.split(",");

for (String path : resourcePathArray) {
path = path.trim(); //注意,这里拿到的是src/main/webapp, webapp, src/main/resource/webapp
if (new File(path).isDirectory()) { //new File()不是实际的路径
ret.add(new FileResourceManager(new File(path)));
}
}

if (UndertowKit.isDeployMode()) {
forDeployMode(classLoader, ret);
}

return ret;
}
其中new File(path).isDirectory()这里有问题,应该永远都是false,导致CompositeResourceManager类里的resourceManagers一直是空。为path只是相对路径,没有加上项目的实际路径,可以在前面添加PathKit.getWebRootPath()
我把path = path.trim(); 修改为
path = PathKit.getWebRootPath() + "/" + path.trim();
现在没有问题了。

2018-12-02 10:37

使用Undertow在Config类里的afterJFinalStart()方法中,获取的ServletContext servletContext = JFinal.me().getServletContext();
servletContext.getResource("demo.ftl")得到的是null,而在Jetty环境下,可以得到实际的路径/src/main/webapp/demo.ftl

2018-12-02 10:06

routes.setBaseViewPath("/templates");去掉,直接把demo.ftl放到webapp下也不行

2018-11-11 10:15

@北流家园网 视图和你直接用这个sql不是一样的吗?又不是物化视图,为什么占空间

2018-11-10 08:59

@JFinal 这种可不可以把原查询保存成视图,然后直接通过查询视图来分页,这个查询太长了。