我正在运行Primefaces 5.3.10,Mojarra 2.2.13,Java8和Tomcat8。
我希望有一个具有不同类型TreeNodes的primefaces树。应使用相应的自定义图标呈现每种类型的TreeNode。
我在网上研究了一些例子,但找不到可行的解决方案。
我有一个java类TreeModel.java,它提供了一个TreeNode:
abstract class Command
{
public abstract object GetValue();
}
abstract class Command<T> : Command
{
public T GetTypedValue()
{
return (T)GetValue();
}
}
class TalkCommand : Command<string>
{
public override object GetValue()
{
return "Test";
}
}
class SpendCommand : Command<int>
{
public override object GetValue()
{
return 1234;
}
}
描述我的树的CustomTree.xhtml:
public class TreeModel {
TreeNode root = new DefaultTreeNode("Root", null);
public TreeNode getRoot(){
return root;
}
public void populizeTree(){
TreeNode node = new DefaultTreeNode("customType1", "nodeName", root);
TreeNode subNode = new DefaultTreeNode("customType2", "subNodeName", node);
TreeNode subNode2 = new DefaultTreeNode("customType3", "subNode2Name", node);
}
}
为了显示不同TreeNode类型的不同图标,我还创建了名为TreeNode.css的css文件:
<p:tree value="#{TreeModel.root}"
var="node"
highlight="true"
dynamic="true"
selectionMode="single"
id="modultree"
style="width: 980px;">
<p:treeNode type="customType1" icon="icon-modul">
<h:outputText value="#{node}"/>
</p:treeNode>
<p:treeNode type="customTyp2" icon="icon-konto">
<h:outputText value="#{node}"/>
</p:treeNode>
<p:treeNode type="customType3" icon="icon-exam">
<h:outputText value="#{node}"/>
</p:treeNode>
</p:tree>
并将png文件放在目录/ myApp / resources / images /.
中我尝试了一些变体,但无论哪种方式都不会呈现自定义图标。
我做错了什么?
答案 0 :(得分:1)
Kukeltje的提示解决了我的问题。 使用Firebug我可以看到,css应该像
.ui-widget-content .icon-exam {
background-image: url("../images/hio-pruefung.png") !important;
height: 16px;
width: 16px;
}
我无法找到使用语法引用图像的方法: URL(&#34;#{资源[&#39;图像:HIO-pruefung.png&#39;]}&#34)