Struts 2 - Доступ к различным свойствам в ValueStack с одинаковым именем - PullRequest
2 голосов
/ 30 мая 2010

Struts 2 сначала разрешит все имена свойств при рендеринге представления для верхнего объекта в ValueStack. Но как можно получить доступ к свойству с тем же именем на объекте ниже в стеке?

Пример:

Допустим, у меня есть класс Action с именем MyAction, и у него есть свойство logDate. В представлении, отображаемом после вызова этого действия, есть следующее:

<s:iterator value="users" status="itStatus">
  <s:property value="logDate"/>
</s:iterator>

Теперь представьте, что объект User также имеет свойство logDate. Во время итерации Struts 2 всегда помещает текущий пользовательский объект в верхнюю часть ValueStack, эффективно сопоставляя все имена свойств с ним. Но что, если я хочу получить доступ к logDate из действия? Как правильно это сделать?

1 Ответ

3 голосов
/ 30 мая 2010

Вы можете использовать индекс для просмотра подстека. Например: [0] .logDate запускает поиск с остановки стека и находит logDate для объекта пользователя. [1] .logDate запустит поиск на один уровень глубже и найдет logDate в классе Action. Эта страница OGNL (см. Раздел справа над заголовком «Доступ к статическим свойствам») содержит некоторые дополнительные сведения, и здесь приведено еще одно объяснение .

...