2012-04-19 3 views
1

Мы в процессе перехода от JSP VDL к Facelets VDL. У нас есть условный тег рендеринга, который нужно портировать на Facelets. Из-за & & символ в состоянии рендеринга, .xhtml не работает в компиляции. Любые мысли о том, как с этим справиться?Richfaces4.2 условие условного рендеринга

<a4j:outputPanel styleClass="myclass" layout="block" 
         rendered="#{myBean.iscorrect && anotherBean.isCorrect}"> 
render something here ... 

</a4j:outputPanel> 

Спасибо за ваше время.

ответ

0

Использовать and вместо &&. Это также сразу становится более самодокументированным.

<a4j:outputPanel styleClass="myclass" layout="block" 
    rendered="#{myBean.iscorrect and anotherBean.isCorrect}"> 

Причина в том, что Facelets является технология вид XML на основе и что & это специальный символ в XML, представляющий собой начало объекта. Точное сообщение об ошибке компиляции Facelets, которое вы получили, должно также что-то намекнуть. Другими специальными символами, которые следует соблюдать, являются: < и >, которые должны быть заменены на EL, соответственно lt и gt.

Эта проблема не связана с RichFaces. При выполнении стандартных тегов JSF у вас будет такая же проблема.

Кстати, у вас действительно есть метод получения isIscorrect()? Мне было бы более полезно, если бы у вас был private boolean correct; с методом public boolean isCorrect() и оценивается как rendered="#{myBean.correct and anotherBean.correct}".

+0

Привет, BalusC, спасибо за ваш ответ. Нет. У меня нет метода isCorrect(). Просто для представления логического ответа я назвал его как iscorrect. – kosa

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