代码之家  ›  专栏  ›  技术社区  ›  srinannapa

ognl静态字段不在struts2中工作

  •  0
  • srinannapa  · 技术社区  · 14 年前

    无法使用带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 回复  |  直到 13 年前
        1
  •  3
  •   leonbloy    14 年前

    您的问题与静态字段无关,而是与基本的struts2标记语法有关。代码在多个级别上是错误的。

    首先,它的 价值 属性,以便Struts2将内部内容解释为要评估和呈现的内容( 字段值 仅适用于需要在HTML中编写固定的特别值“”属性的罕见情况)。

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

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