На странице, созданной с использованием JSF, JSTL и Trinidad, у меня есть тег, называемый множеством атрибутов.Как я могу огибать что-то в элементе HTML условно
<tr:selectBooleanRadio
group="#{groupId}"
id="#{groupId}_#{Id}_radio"
selected="#{value.yesterday}"
text="#{msg.ib_selectTimeIntervalRadio_yesterday_label}"
shortDesc="#{ib:fn_coalesce(title,label)}"
simple="#{ib:fn_coalesce(simple,true)}"
styleClass="#{ib:fn_coalesce(styleClass,'selectTimeIntervalRadio')}"/>
Я хочу, чтобы показать его в <td>
элемента или непосредственно, условно. Теперь я делаю это как:
<c:when test="#{not horizontal}">
<tr>
<td>
<tr....>
</td>
</tr>
</c:when>
<c:when test="#{horizontal}">
<tr...>
</c:when>
Таким образом, я повторяю один и тот же фрагмент кода дважды, что явно плохо. Что я могу сделать?
IMHO, бесполезно создавать новый пользовательский компонент для tr ... call-call, который будет иметь все те же проблемы.
Может быть, я могу оформить один тег в другой условно? Могу я?
Другой способ может быть таким: поместить тэг tr ... в какую-то переменную и использовать при построении с этой переменной. Может быть, это возможно?
Вы знаете, как избежать этого дублирования кода?
Для последнего мне нужно объявить xmlns: h = "http://java.sun.com/jsf/html". Выглядит грязно. Первый вариант гораздо более сочувствующий, что я делаю для этого f :, пожалуйста? – Gangnus
Как ответил, в Facelets это не сработает. Это обычный стандартный тег, кстати, только устарел с JSF 2.0. – BalusC
Я уже проверил :-(И есть ли еще какое-то более чистое решение? Что-то вроде огибающей элемента при условии? – Gangnus