как отрицать логическое значение в теге struts2?

#struts2 #ognl

#struts2 #ognl

Вопрос:

В теге struts2 оператор отрицания «!», похоже, не применяется в Struts2. Что я делаю не так?

 <s:if test="!%{true}">
    you should NOT see this
</s:if>
 

Комментарии:

1. Вам не нужен синтаксис вычисления Struts2. test="!true" должен это сделать.

2. !true == false ,тогда почему вы используете !true.логический тип допускает только true или false.

Ответ №1:

Вы поместили ! выражение outside of the OGNL:

 <s:if test="%{!true}">
 

Хотя %{} в этом случае это необязательно, некоторые будут утверждать, что его всегда следует использовать, чтобы сделать оценку OGNL явной. Я склонен согласиться с этим, хотя для простых вариантов использования я не всегда беспокоюсь.