Ответ зависит от версии JSF и используемой технологии просмотра.Технический термин, который вы ищете, это «использование EL в тексте шаблона» (т.е. не внутри какого-либо тега / компонента).
В соответствии с вашей историей вопросов вы используете JSF 1.2 в Websphere.Я предполагаю, что вы все еще используете старую JSP, предшественницу Facelets.Работает ли JSF EL #{}
в тексте шаблона, зависит от используемой версии JSP.Версия JSP идет рука об руку с версией Servlet.
Если ваш контейнер поддерживает Servlet 2.5, а web.xml
объявлен как Servlet 2.5, то вы используете JSP 2.1.В этом случае вы можете просто использовать #{bean}
в JSP.JSF EL #{}
был перемещен из JSF 1.1 в JSP 2.1 под именем "унифицированный EL".
<td bgcolor="#{bean.color}">
Однако, когда ваш контейнер поддерживает максимум Servlet 2.4, вы в основном используете JSP2.0, и вместо этого вы должны использовать ${bean}
.
<td bgcolor="${bean.color}">
Это имеет только одно предварительное требование: в том же документе, где-то за до вышеупомянутой строки, где вы ссылаетесь на бин JSF с помощью ${bean}
, вам нужно убедиться, что вы уже уже ссылались на тот же компонент с помощью #{bean}
в теге JSF заранее, иначе компонент не будет создан заранее.
Когда выВы используете преемника JSP Facelets , хотя в среде Servlet 2.4 вы можете просто использовать
<td bgcolor="#{bean.color}">
См. также:
Не связано с проблемой, атрибут bgcolor
устарел в HTML.Вместо этого вы должны использовать атрибут CSS style
.
<td style="background: #{bean.color}">
Даже в этом случае вышеупомянутое считается плохой практикой.Поместите CSS в файл стилей .css
, который вы включаете с помощью <link>
/ <h:outputStylesheet>
, и используйте разумные имена классов (например, .odd
, .even
, .success
, .cancelled
и т. Д.) И визуализируйте класс стилей CSS.вместо.Например, если цвет зависит от некоторого статуса:
<td class="#{bean.status}">