2016-10-14 3 views
2

У меня есть класс, как это:Как проверить свойство 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> 

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

+0

Что вы имеете в виду? Имеет ли он какие-либо исключения или ошибки? –

+0

Ошибка отсутствует, «hello» просто не отображается – Chin

ответ

2

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

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

Посмотрите на Variable References гида OGNL языка.

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

#var 
+0

Struts 2.5.2 использует зависимость OGNL 3.1.10. –

Смежные вопросы