让同事去解决自定义登录后页面的时候,由于他在看## Default Landing Page 相关属性的时候看到要设置auth.forward.by.last.path=true ,但是他并没有看到在 portal.properties 中已经存在了这个key/value 。
于是又增加了一次,结果应该显示的问题出不来。当时在想当然中我也认为没有问题,因为根据我们平时用的properties 文件的用法,肯定应该是覆盖才对,不管他几个。但是事实其实并非如此,easyconf 并非去默认的覆盖,而是会添加,成为一个list,如果返回String,则是用逗号分割的一个字符串。
而Liferay中的GetterUtil.java 的函数public static boolean get(String value, boolean defaultValue) 中继续调用的判断true/false 的方法是和public static String[] BOOLEANS = {"true", "t", "y", "on", "1"}; 中的进行比较,如果设置了两次,那么"true,true" 也会返回false啦。
至于为什么portal-ext.properties中为什么能够覆盖,可能是因为前面的关键字属性include-and-override 指定的吧。懒得管那么多了。
由此也可见,工作要认真细致,细微之处不注意想当然,可能也会造成意想不到的问题,当然在开发过程中发现这些对我们是好事。没有bug创造bug解决bug吧