Как проверить свойство bean-компонента в Struts 2?

У меня есть такой класс:

public class Foo {
    public boolean isValid() {
        return false;
    }
}

В моем файле JSP я хочу использовать метод isValid в тестовом условии:

<s:bean name="com.Foo" var="bar"></s:bean>
<s:if test="%{bar.valid == false}">
    <p>hello</p>                    
</s:if>

но это не работает. Что я сделал не так?


person Chin    schedule 14.10.2016    source источник
comment
Что ты имеешь в виду? Есть ли у него какие-либо исключения или ошибки?   -  person Roman C    schedule 14.10.2016
comment
Ошибки нет, привет просто не появляется   -  person Chin    schedule 14.10.2016


Ответы (1)


На контекстные переменные ссылаются с помощью #, но вы использовали имя bar без знака номера.

<s:if test="%{#bar.valid == false}">
    <p>hello</p>                    
</s:if>

Просмотрите ссылки на переменные языкового руководства OGNL.

OGNL имеет простую схему переменных, которая позволяет вам сохранять промежуточные результаты и использовать их снова или просто называть вещи, чтобы сделать выражение более понятным. Все переменные в OGNL являются глобальными для всего выражения. Вы обращаетесь к переменной, используя знак числа перед ее именем, например:

#var
person Roman C    schedule 14.10.2016
comment
Struts 2.5.2 использует зависимость OGNL 3.1.10. - person Roman C; 14.10.2016