OGNL静态字段在struts2中不起作用

时间:2010-06-21 20:25:20

标签: java struts2 ognl

无法使用带有struts2

的OGNL访问静态字段
<s:checkbox  name="operation" fieldValue="@com.xx.xxx.webapp.action.EntryAction@OPERATIONAL" />

以上转向HTML如下

<input type="checkbox" name="operation" value="@com.xx.xxx.webapp.action.EntryAction@OPERATIONAL" id="entry_operation"/>

而是将静态常量声明为

com.xx.xxx.webapp.action.EntryAction.OPERATIONAL = "OPERATIONAL";

我已正确设置常量<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>

1 个答案:

答案 0 :(得分:3)

您的问题与静态字段无关,而与基本Struts2标记语法无关。代码在几个层面上都是错误的。

首先,它应该使用 value 属性,以便Struts2将内部内容解释为要评估和呈现的内容( fieldValue 仅适用于那些罕见的情况。你需要在你的html中写一个固定的ad-hoc value =“”属性。

其次,如果您正在学习Struts2,则不应使用静态字段,首先要了解基本和典型场景。

第三,将该字符串用作复选框的值是没有意义的,复选框只有两个值(true和false)。