2013-09-07 2 views
3

최근 JSF 페이지에 PrimeFaces 쇼케이스에 표시된대로 <p:galleria>을 포함 시켰습니다. 코드가 오류없이 실행 중이지만 이미지를 표시하지 않습니다. 나는 이것이 잘못된 경로 형식의 이미지 때문이라고 생각한다. 어떻게 이런 일이 생기고 어떻게 해결할 수 있습니까? <p : graphicImage>이 jsf에서 작동하지 않습니다.

compa.java

public void init() { 
    images = new ArrayList<String>(); 

    for(int i=1;i<=10;i++) { 
     images.add("resource/images" + i + ".jpg"); 
    } 
} 

IDE의 이미지 경로 ps\build\web\resource\images이다

<p:galleria value="#{compa.images}" var="image" panelWidth="1570" panelHeight="250" showCaption="true"> 
    <p:graphicImage value="resource/images/#{image}" name="COMPANY CREATION"/> 
</p:galleria> 

index.xhtml.

답변

6

우선 JSF는이 질문의 맥락에서 HTML 코드 생성기입니다. HTML에서 이미지는 요소로 표시되며 src 속성은 웹 브라우저가 개별적으로 이미지를 다운로드 할 수있는 (상대) URL을 가리켜 야합니다. 웹 브라우저에서 JSF 페이지를 열고 rightclick을 수행하여 생성 된 HTML 출력을 확인 했습니까? 소스보기? 생성 된 <img> 요소는 괜찮은가요? 가능성이 없습니다.

name 속성 사용 방법이 잘못되었습니다.

<p:graphicImage value="resource/images/#{image}" name="COMPANY CREATION"/> 

name 속성은 "자원 이름"을 나타냅니다. 기본적으로 리소스에 대한 경로입니다. /resources 폴더의 상대 주소입니다. 이 속성은 value 속성보다 우선합니다. 그래서 기본적으로 만들려고합니다

<img src="COMPANY CREATION" /> 

이것은 올바르지 않습니다. JSF는 URL 대신 RES_NOT_FOUND을 자동으로 생성합니다. 생성 된 HTML 출력에서이를 보았어야합니다.

는 의도가 당신이 대신 상황에 상대 URL을 소요 value 속성을 사용하여 주장하는 경우 툴팁으로, 다음 오른쪽 방법은,

<p:graphicImage name="images/#{image}" title="COMPANY CREATION" /> 

또는 "회사의 창조"를 표시하는 것입니다 제공 리소스 이름 :

<p:graphicImage value="/resources/images/#{image}" title="COMPANY CREATION" />