Java, Struts2: получение значения из Map в теге компонента

#java #tags #struts2 #action

#java #Теги #struts2 #Экшен

Вопрос:

У меня следующий случай: я разрабатываю компонент, который я намерен использовать с помощью <s:component> тега Struta 2. Разрабатываемый мной тег представляет собой заголовок столбца в форме списка. Параметр, который я передаю компоненту, — это имя столбца. Что я хочу сделать и точно не знаю, как это сделать, так это проверить, отсортирован ли список по определенному столбцу. В классе action у меня есть карта, которая содержит сортировку списка, но я не знаю, как получить к ней доступ динамически. Это работает:

 <s:if test="%{sortingKey['id'] == 0}">
  //show ascending sorting for example
</s:if>
 

Это не работает:

 <s:if test="%{sortingKey['%{parameters.fieldName}'] == 0}">
  //show ascending sorting for example
</s:if>
 

Ответ №1:

Поскольку параметр уже является строкой, вы должны просто иметь возможность использовать:

 <s:if test="%{sortingKey[parameters.fieldName] == 0}">
 

Я не уверен, что делает остальная часть вашего тега, но я бы использовал boolean для указания значения true / false.