Сделать ссылку, когда не ноль
Поскольку я покажу таблицу на странице, есть определенные элементы, которые не имеют значения. Но элементы, которые имеют значение для формирования ссылки на другую страницу. Прямо сейчас это ничего не показывает, ни имеет значение, ни нет.
Я новичок в Java и не понимаю, что я написал неправильно в моем коде.
Вот мой код:
<h:link outcome="schoolclass-detail" value="#{la.participant.schoolclass.classname}" rendered="{!la.participant.schoolclass.classname==null}">
<f:param name="schoolclassId" value="#{la.participant.schoolclass.id}" />
</h:link>
Заранее всем спасибо за помощь!
1 ответ
Предполагая, что вы используете JSF, 'la' является вашим резервным компонентом, и вы хотите визуализировать вашу ссылку, если переменная 'classname' не равна нулю, я бы предложил использовать выражения EL, а не необработанные выражения Java.
Вы можете прочитать больше о EL здесь
Выражение вашего примера
rendered="{!la.participant.schoolclass.classname==null}"
может выглядеть в EL как
rendered="#{not (la.participant.schoolclass.classname eq null)}"
или же
rendered="#{la.participant.schoolclass.classname ne null}"
а может лучше
rendered="#{not (empty la.participant.schoolclass.classname)}"
not
очевидно инвертирует следующее выражение
eq
означает равных и поэтому равен Java object1.equals(object2);
или в случае примитивных типов, таких как логические obj1 == obj2
;
ne
обозначает не равных. Вы можете догадаться, что он делает...
empty
оценивает следующее выражение как находящееся в определенном состоянии пустого материала покрытия, такого как нуль, пустая строка ("") или массив или список без содержимого
Также важным является #
перед утверждением, что вы, кажется, забыли в своем примере. Если вы забудете это, ценность вашего rendered
Атрибут обрабатывается как String, а не как какое-либо выражение, которое должно оцениваться JSF. Я думаю, что это является основной причиной того, что ваш пример не работает, так как ваше выражение в основном правильно
С уважением
J.Adam