Struts2中使用OGNL访问静态变量

发布于 2024-11-27 16:17:54 字数 587 浏览 1 评论 0原文

再会!

我正在阅读 Manning 的 struts2 书,其中一个主题是使用 OGNL 使用语法 @[fullClassName]@[property or methodCall] 访问静态变量,

所以我在我的程序上尝试了它,我的代码如下如下:

BEAN:

public class ContactsBean {

    private static int count = 1;
    //getter and setter
}

ACTION:

private ContactsBean contacts;
//getters and setters

JSP:

   <s:property value="@com.demo.bean.ContactsBean@count" />

or
    <s:property value="@vs@count" />  //valuestack method

但它不起作用。我错过了什么吗? 谢谢。

Good day!

I am reading Manning's struts2 book and one of the topic is accessing the static variable using OGNL using the syntax @[fullClassName]@[property or methodCall]

so I tried it on my program and my code is as follows:

BEAN:

public class ContactsBean {

    private static int count = 1;
    //getter and setter
}

ACTION:

private ContactsBean contacts;
//getters and setters

JSP:

   <s:property value="@com.demo.bean.ContactsBean@count" />

or
    <s:property value="@vs@count" />  //valuestack method

but it doesn't work. Am i missing something?
Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

生生漫 2024-12-04 16:17:54

@see OGNL 基础知识:访问静态属性

豆子

public class ContactsBean {
    private static int count = 1; 

    // static getter
    // setter
}

<s:property value="@com.demo.bean.ContactsBean@getCount()" />

其他情况

public class ContactsBean {
    public static final int SCALE = 50;
}

<s:property value="@com.demo.bean.ContactsBean@SCALE" />

@see OGNL Basics : Accessing static properties

BEAN :

public class ContactsBean {
    private static int count = 1; 

    // static getter
    // setter
}

<s:property value="@com.demo.bean.ContactsBean@getCount()" />

other case

public class ContactsBean {
    public static final int SCALE = 50;
}

<s:property value="@com.demo.bean.ContactsBean@SCALE" />
二智少女 2024-12-04 16:17:54

Apache Struts 2 文档 - struts.properties
http://struts.apache.org/2.0.14/docs/strutsproperties.html

要启用静态方法访问/调用,请在基础包的 struts.properties 文件中设置 Struts2 常量:

struts.ognl.allowStaticMethodAccess=true 

..或者我相信您可以在 struts.xml 中设置它 作为

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 

Apache Struts 2 Documentation - struts.properties
http://struts.apache.org/2.0.14/docs/strutsproperties.html

To enable static method access / invocation set the Struts2 constant in your struts.properties file in your base package:

struts.ognl.allowStaticMethodAccess=true 

.. or I believe you can set it in the struts.xml as

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 
请帮我爱他 2024-12-04 16:17:54

如果我们在 struts.xml 中提到以下条目,它就可以正常工作

  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 

Its work fine if we mentioned the below entry in struts.xml

  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 
日记撕了你也走了 2024-12-04 16:17:54

正如新版本的 struts 2 (2.3.20) 中提到的,这个 (struts.ognl.allowStaticMethodAccess) 很快就会从 struts 中删除。

请查看 Struts 2 重构代码以避免 OGNL 静态方法访问 了解如何在新版本中仍然使用此功能。

As mentioned in new release of struts 2 (2.3.20), this (struts.ognl.allowStaticMethodAccess) will be removed soon from struts.

Please review Struts 2 refactoring code to avoid OGNL static method access to find out how you can still use this feature in new version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文