只是一个基本需求,但无法让它发挥作用。 我想有一个primefaces按钮来显示我的图像,没有任何文字。
但我得到的是一个仅包含^
字符的按钮,并且不显示尺寸为16x16的图像。
所以,这是primefaces按钮:
<p:commandButton image="ui-icon-csv" title="CSV Document" ajax="false">
<p:dataExporter type="csv" target="gridRPBDetails"
fileName="#{tInputBean.exportFilename}" />
</p:commandButton>
这是css文件:
.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
我正在使用tomcat 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>
任何想法出了什么问题?
谢谢!
答案 0 :(得分:7)
在使用firebug进行一些调查后,我发现罪魁祸首来自我定义的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:
<button type="submit" title="Excel Document" onclick=";"
name="gridRPBDetails:j_idt81" id="gridRPBDetails:j_idt81"
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only"
role="button" aria-disabled="false">
<span class="ui-button-icon-primary ui-icon ui-icon-xls"></span>
<span class="ui-button-text">ui-button</span>
</button>
谢谢!
答案 1 :(得分:2)
Primefaces提供graphicImage
中显示的<p:commandLink ajax="false">
<p:graphicImage value="/images/excel.png" />
<p:dataExporter type="xls" target="tbl" fileName="cars" />
</p:commandLink>
:
{{1}}
对某人而言,它可能有用。
* showcase-labs (broken link)。 请注意,在这种情况下,上述代码将无效。
答案 2 :(得分:2)
在图标类名
之前写ui-widget
.ui-widget .ui-icon-xls {
background-image: url(images/excel_small.png);
}
.ui-state-default
不会在其他组件中显示<p:menuitem/>
和<p:menuButton/>
答案 3 :(得分:1)
使用commandButton
时,重要的是png文件大小为16 x 16,因为较大的图像可能无法正确显示或根本不显示。