Это продолжение вопроса Использованиес перечислением
После следования предложению из принятого ответа я столкнулся с другой проблемой.Реальный путь к изображению (мой код был примером кода) частично генерируется с использованием библиотечной функции для получения тематического пути к изображению.Пожалуйста, поймите, что мне не разрешается раскрывать реальный код, поэтому мне приходится вырезать много фрагментов, когда я публикую здесь.
Первая проблема заключается в том, что h: graphicImage автоматически генерирует абсолютный путь к изображению для тега imgиспользуя текущий путь портлета.Пример: мне нужно http://myserver/mytheme/portlet/image.gif, но если я использую <h:graphicsImage value="#{myNs:getThemePath()}image.gif" />
, вместо этого будет отображаться http://myserver/myportlet/mytheme/portlet/image.gif;, использование <img src="#{myNs:getThemePath()}image.gif" />
отлично работает.
Как указано в другом вопросе, янужно переключаться между изображениями, основываясь на условии итерирующего элемента в таблице ICEFaces, AND Мне также нужно (из соображений доступности) разместить правильный атрибут alt
с локализованным ресурсом.
Вкратце, мой код похож на следующий (ice:dataTable
опущен)
<h:column>
<f:facet name="header">
<ice:outputText value="#{myNs:getLocale('state')}" />
</f:facet>
<img alt="[[TODO]]" src="#{myNs:getThemePath()}#{item.state == 'COMPLETED' ? 'ok' : 'ko'}.gif"
</h:column>
Часть src работает, но теперь возникают проблемы.
Если я использую alt="#myNs:getLocale('prefix.#{item.state = 'COMPLETED' ? 'completed' : 'canceled'}')}
, я могу 'вложенные выражения (не оцениваются)
Если я создаю два тега <h:graphicsImage
для двух случаев (нет необходимости использовать сложные выражения в alt
) и использую атрибут rendered
, как описанов принятом ответе на другой вопрос я не могу правильно отобразить URL изображения.
Я также не могу использовать тег <c:when
, потому что, как объяснено в другом вопросе, он всегда оценивается как ложный.
Что я могу сделать, чтобы встретиться сquirements?Как я могу использовать два тега <img
и переключать их рендеринг в соответствии с моими условиями?
Спасибо
[добавить] К счастью, я получил следующее сообщение об исключении в журналах Tomcat при объединении выражения.Может ли кто-нибудь помочь мне лучше изучить выражения EL?Я совершенно новичок в JSF
Caused by: org.apache.el.parser.ParseException: Encountered "#" at line 1, column 32.
Was expecting one of:
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<STRING_LITERAL> ...
"true" ...
"false" ...
"null" ...
"(" ...
"!" ...
"not" ...
"empty" ...
"-" ...
<IDENTIFIER> ...
<FUNCTION_CALL> ...