2011-05-11 4 views
8

기본적인 필요는 있지만 작동시키지 못합니다. 아무 텍스트도없이 내 이미지를 표시하기 위해 primefaces 버튼을 갖고 싶습니다.명령 단추에 아이콘 이미지를 표시하는 데 도움이 필요합니다.

하지만 내가 얻는 것은 ^ 문자 만 포함하고 16x16 크기의 이미지는 표시하지 않는 버튼입니다.

<p:commandButton image="ui-icon-csv" title="CSV Document" ajax="false"> 
    <p:dataExporter type="csv" target="gridRPBDetails" 
     fileName="#{tInputBean.exportFilename}" /> 
</p:commandButton> 

이 CSS 파일입니다 :


그래서, 이것은 primefaces 버튼입니다

.ui-icon-csv { 
    background-image: url(images/csv_small.png); 
} 

는 그리고 이것은 버튼의 생성 된 HTML이다 :

<button type="submit" onclick=";" 
    name="gridRPBDetails:j_idt82" id="gridRPBDetails:j_idt82" 
    class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" 
    role="button" aria-disabled="false"> 
     <span class="ui-button-icon-primary ui-icon ui-icon-csv"></span><span class="ui-button-text">CSV Document</span> 
</button> 

그리고 이미지에 액세스 증명하기 위해,이 URL을 시도하고 실제로 그것은 그림을 보여줍니다

http://albert:8080/mywebapp/faces/javax.faces.resource/images/csv_small.png 

임 바람둥이 7을 사용하고, 이러한 내 의존성은 다음과 같습니다

<dependency> 
    <groupId>org.primefaces</groupId> 
    <artifactId>primefaces</artifactId> 
    <version>2.2.1</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.faces</groupId> 
    <artifactId>jsf-api</artifactId> 
    <version>2.0.4-b09</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>com.sun.faces</groupId> 
    <artifactId>jsf-impl</artifactId> 
    <version>2.0.4-b09</version> 
    <scope>compile</scope> 
</dependency> 

어떤 아이디어 뭐가 잘못 됐어?

감사합니다.

+1

css가 이미지를 찾았습니까? (올바른 상대 경로)? 버튼이 포함 된 페이지를 요청하면 Chrome/Firefox 개발자 도구로 404 오류를 확인하십시오. –

+0

@Matt Handy : 안녕하세요, 답변 해 주셔서 감사합니다. 예, 원래 게시물에 명시된 바와 같이 해당 URL을 사용하여 이미지를 볼 수 있습니다. 또한 방화 단추를 사용하여 이미지를 볼 수 있다고 언급하는 것을 잊었습니다. 그러나 나는 CSS 주위에 몇 가지 조정 후 해결책을 찾았습니다. 관심이 있으시면 아래의 답변을 참조하십시오. 고맙습니다 ! – bertie

답변

7

방화범을 사용하여 조사한 결과, 나는 범인이 내가 정의한 CSS 항목에서 나온 것임을 알았습니다.

이 내용은 내가이 작업을하기 위해 변경 한 사항입니다.


은 JSF 버튼 :

<p:commandButton image="ui-icon-xls" title="Excel Document" ajax="false"> 
    <p:dataExporter type="xls" target="gridRPBDetails" 
     fileName="#{tInputBean.exportFilename}" /> 
</p:commandButton> 

CSS의 :

: 여기

.ui-state-default .ui-icon-xls { 
    background-image: url(images/excel_small.png); 
} 

그리고는 생성 된 HTML이다


고맙습니다!

<p:commandLink ajax="false"> 
    <p:graphicImage value="/images/excel.png" /> 
    <p:dataExporter type="xls" target="tbl" fileName="cars" /> 
</p:commandLink> 

그것은 다른 사람에게 어떻게든지 유용 할 수 있습니다 자신의 showcase-labs (broken link) 같이

2

쓰기 ui-widget.ui-state-defaultcommandButton 사용 <p:menuitem/><p:menuButton/>

+0

더 이상이 프로젝트를 수행하지 않아서 테스트 할 수 없습니다. 그러나 나는 이것이 가장 안전한 대답이라고 생각한다. 공유해 주셔서 감사합니다. – bertie

+0

작동하지 않는다 :(나를 위해 – Zbyszek

+0

위대한 솔루션!하지만 Primefaces '클래스가 많이 바뀌므로 일부 버전에서는 작동하지 않을 수 있으며 버전 업데이트가 중단 될 수 있습니다. 누구에게 도움이 될 수 있습니다 : 생성 된 html 및/또는 사용중인 버전의 문서를 스타일링하는 해당 프라임을 확인한 다음 css로 작업하게 만들 수 있습니다! – falsarella

1

같은 다른 구성 요소에는 표시되지 않습니다

.ui-widget .ui-icon-xls { 
    background-image: url(images/excel_small.png); 
} 

아이콘 클래스 이름 앞에, PNG 파일 크기가하는 것이 중요하다 더 큰 이미지가 올바르게 표시되지 않거나 전혀 표시되지 않을 수 있기 때문에 16 x 16 크기입니다.

관련 문제