전환이 후속이 허용 대답의 제안을 따른 후JSF 이미지
Using <c:when> with an enumeration에 의문을 제기하는 것입니다, 나는 또 다른 문제가 발생했습니다. 실제 이미지 경로 (예제 코드)는 부분적으로 라이브러리 함수를 사용하여 테마 이미지 경로를 생성합니다. 나는 실제 코드를 공개 할 수 없으므로 여기에 게시 할 때 많은 조각을 잘라야한다는 것을 이해하십시오.
첫 번째 문제점은 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" />
을 사용하면 완벽하게 작동합니다. 다른 질문에 지정된대로
, 나는 지역화와 올바른 alt
속성을 배치하는 나는 또한 (접근성 이유로) 필요 ICEFaces 테이블에 반복하는 항목의 상태, 및에 내놓고 이미지 사이를 전환 할 필요가 의지.
간단히, 내 코드는 다음 (생략 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'}')}
내가 둥지 식 (은 평가되지 않습니다)
나는 두 경우 (alt
복잡한 표현식을 사용할 필요가 없습니다) 두 <h:graphicsImage
태그를 작성하는 경우와는 rendered
을 사용할 수 없습니다 사용하는 경우 애트리뷰트가 다른 질문의 대답에 설명 된대로 제대로 표시되지 않으면 이미지 URL이 올바르게 렌더링되지 않습니다.
다른 질문에서 설명했듯이 항상 false로 평가되기 때문에 <c:when
태그도 사용할 수 없습니다.
두 가지 요구 사항을 모두 충족하려면 어떻게해야합니까? 두 개의 <img
태그를 사용하고 내 상태에 따라 렌더링을 전환하려면 어떻게해야합니까?
감사
표현을 결합 할 때 다행히, 나는 톰캣 로그에 다음과 같은 예외 메시지를 받았습니다 [추가]
. 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> ...
"이미지 URL이 올바르게 렌더링되지 않습니다." 어떻게 렌더링 할 수 있습니까? – Bozho
이미 말했듯이 http : //myserver/myportlet/mytheme/portlet/image.gif URL의 myportlet 부분은 없어야합니다. 어쨌든, 마침내 img 태그를 사용하여 문제를 해결했습니다 –