Доступ к статической переменной с помощью OGNL в Struts2

Добрый день!

Я читаю книгу Мэннинга по struts2, и одна из тем касается доступа к статической переменной с использованием OGNL с использованием синтаксиса @[fullClassName]@[property or methodCall].

поэтому я попробовал это в своей программе, и мой код выглядит следующим образом:

БОБ:

public class ContactsBean {

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

ДЕЙСТВИЕ:

private ContactsBean contacts;
//getters and setters

JSP:

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

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

но это не работает. Я что-то упускаю? Спасибо.


person newbie    schedule 02.08.2011    source источник


Ответы (4)


Документация по Apache Struts 2 — struts.properties http://struts.apache.org/2.0.14/docs/strutsproperties.html

Чтобы разрешить доступ/вызов статического метода, установите константу Struts2 в файле struts.properties в базовом пакете:

struts.ognl.allowStaticMethodAccess=true 

.. или я считаю, что вы можете установить его в struts.xml как

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 
person Russell Shingleton    schedule 04.08.2011

Он отлично работает, если мы упомянули приведенную ниже запись в struts.xml.

  <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 
person prashant thakre    schedule 04.02.2012

Как упоминалось в новом выпуске struts 2 (2.3.20), этот (struts.ognl.allowStaticMethodAccess) скоро будет удален из struts.

Просмотрите код рефакторинга Struts 2, чтобы избежать доступа к статическому методу OGNL. чтобы узнать, как можно использовать эту функцию в новой версии.

person Alireza Fattahi    schedule 11.03.2015

person    schedule
comment
Новая ссылка: struts.apache.org/tag-developers/ognl-basics. .html - person jspek; 06.04.2020