小弟最近將 Struts 2.0.11 提升到 2.1.6 之後,發現了一個問題,那就是使用 Ognl 呼叫類別中的靜態方法時,吐出來的值竟然空空如也,連錯誤訊息也沒有。
<s:property value="@java.util.Locale@getDefault()" />
一開始我還以為是我寫錯了,搞了老半天最後也只能求助於古狗大神。很快的我找到二篇相關的文章,才發現原來在 struts 2.1.2 之後,如果要讓 Ognl 能夠呼叫類別中的靜態方法,還需要額外設定…真是一整個昏倒。
設定方法為:
在 struts.properties 或 struts.xml 中將 struts.ognl.allowStaticMethodAccess 設成 true 即可 (預設值為 false),於是我在 struts.xml 中加入
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
之後,Ognl 就能呼叫到類別中的靜態方法了。真搞不懂 Struts 2 幹嘛要這樣亂搞……
以下為在古狗大神中找到的兩篇相關文章:
<s:property value="@java.util.Locale@getDefault()" />
一開始我還以為是我寫錯了,搞了老半天最後也只能求助於古狗大神。很快的我找到二篇相關的文章,才發現原來在 struts 2.1.2 之後,如果要讓 Ognl 能夠呼叫類別中的靜態方法,還需要額外設定…真是一整個昏倒。
設定方法為:
在 struts.properties 或 struts.xml 中將 struts.ognl.allowStaticMethodAccess 設成 true 即可 (預設值為 false),於是我在 struts.xml 中加入
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
之後,Ognl 就能呼叫到類別中的靜態方法了。真搞不懂 Struts 2 幹嘛要這樣亂搞……
以下為在古狗大神中找到的兩篇相關文章:
全站熱搜
留言列表