JSP сравнивает ключ hashmap со значением объекта

Я новичок в JSP, и у меня возникла проблема при выполнении сравнения ключа хэш-карты и значения объекта. У меня есть объект (коробка), который имеет строковое поле (размер). У меня также есть хэш-карта, которая содержит список ящиков в зависимости от размера.

Map<String, List<Box> boxCatgMap=new HashMap<String, List<Box>>();

  <s:iterator value="boxCatgMap" var="boxCatg">
        <s:set var="boxCatgKey" value="#boxCatg.key"/>
        <s:iterator value="boxes" var="box" status="ind">
           <s:if test="%{#box.size.equals(boxCatgKey)}">
            //some code
           </s:if></s:iterator>
  </s:iterator>

У условия if есть проблема, из-за которой оно не выполняется. Может ли кто-нибудь помочь, что мне не хватает?

Спасибо


person JJN    schedule 01.12.2017    source источник
comment
попробуйте поставить # перед boxCatgKey test="%{#box.size.equals(#boxCatgKey)}"   -  person Gurkan Yesilyurt    schedule 01.12.2017
comment
Спасибо :) это сработало.   -  person JJN    schedule 01.12.2017
comment
Пожалуйста.   -  person Gurkan Yesilyurt    schedule 01.12.2017


Ответы (1)


Также используйте решетку (#) перед boxCatgKey.

<s:if test="%{#box.size.equals(#boxCatgKey)}"></s:if>

Когда вы используете Struts 2 data-tags с областью действия по умолчанию (т.е. область действия):

<s:set var="boxCatgKey" value="#boxCatg.key"/>

Вы можете получить к нему доступ по #boxCatgKey.

person Gurkan Yesilyurt    schedule 01.12.2017