 
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);
            }
        }
    }
 
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();
现在没有问题了。