2010-05-03 4 views
0

나는 Common/Images/Photounavailable.jpg이라는 폴더가 있습니다. 루트에서 이미지를 참조하는 올바른 방법입니까? 내 웹 응용 프로그램의 모든 폴더에있는 모든 페이지에서이 이미지를 참조하고 싶습니다. 내 웹 응용 프로그램의 루트에서 내 Java 웹 응용 프로그램의 이미지를 어떻게 참조합니까?

private String getPhotoUnavailablePath = "/Common/Images/PhotoNotAvailable.jpg"; 
    private String getPhotoUnavailablePath(){ 
     return photoUnavailablePath; 
    } 

그리고 내 JSF 페이지에서

내가 좋아하는 뭔가를 쓰기 : -

<h:outputLink id ="blogPhoto" value="#{BlogBean.photoUnavailablePath}" > 
    <h:graphicImage value="#{BlogBean.photoUnavailablePath}" style="width: 180px;height: 180px;"/> 
</h:outputLink> 

내가 할 시간에 볼 수있는 이미지 : graphicImage합니다. 하지만 클릭하면 404 오류가납니다. OutputLink는 이미지에 대한 적절한 링크를 얻지 못합니다. 그게 어떻게 가능해? 그 h : graphicImage는 적절한 링크를 얻고 h : outputLink는 그렇지 않습니까?

또한,이 코드는 완벽하게 작동합니다 : -

<h:outputLink id ="blogPhoto" value="..#{BlogBean.photoUnavailablePath}" > 
    <h:graphicImage value="#{BlogBean.photoUnavailablePath}" style="width: 180px;height: 180px;"/> 
</h:outputLink> 

그냥 작동 ..을 넣어! 아무도 내게 무슨 일이 일어 났는지 설명 할 수 있고 어떻게 해결할 수 있습니까?

답변

7

<h:graphicImage>은 컨텍스트 관련 경로를 사용합니다.
<h:outputLink>은 절대 경로를 사용합니다. 그렇기 때문에 /을 사용할 수 없습니다 (루트 컨텍스트가 아닌 경우).

당신은 경로의 시작 컨텍스트 루트가 아닌 서버 루트로 지정

value="#{facesContext.externalContext.context.contextPath}/#{bean.path}" 

같은 것을 사용할 수 있습니다.

+0

큰 대답 Bozho :). 감사 – TCM

관련 문제