Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将带有p:graphicImage的p:commandLink放入动态列数据表中_Java_Jakarta Ee_Primefaces_Facelets_Jsf 2.2 - Fatal编程技术网

Java 如何将带有p:graphicImage的p:commandLink放入动态列数据表中

Java 如何将带有p:graphicImage的p:commandLink放入动态列数据表中,java,jakarta-ee,primefaces,facelets,jsf-2.2,Java,Jakarta Ee,Primefaces,Facelets,Jsf 2.2,我遵循了中的动态列功能的示例,它非常有效 现在我想要的不是简单的列,而是将嵌套在中的列放在中,用于显示 换言之,我如何使用这个: <f:facet name="header"> #{column.header} </f:facet> #{car[column.property]} </p:columns> *这种在支持bean中创建整个datatable并将其绑定到facelet的方法确实解决了一个主要问题,那就是我应该在命令链接上单击两次以触发

我遵循了中的
动态列功能的示例,它非常有效

现在我想要的不是简单的
列,而是将
嵌套在
中的列放在
中,用于显示

换言之,我如何使用这个:

<f:facet name="header">
   #{column.header}
</f:facet>
   #{car[column.property]}
</p:columns>
*这种在支持bean中创建整个datatable并将其绑定到facelet的方法确实解决了一个主要问题,那就是我应该在命令链接上单击两次以触发操作(没有嵌套表单,所有内容都符合)

其他信息: PrimeFaces4.0。
JSF 2.2.

这是一个使用
的替代方案:


使用name属性,而不是p:graphicImage中的值

p:graphicImage使用名称属性(而不是值)匹配资源文件夹中的图像。如果未提供名称,则不会呈现img html元素

示例(基于PrimeFaces列showcase):


您还可以使用library属性(在本例中的结果相同)


图像和目录必须存在于项目的
WebContent/resource
文件夹中


还要考虑我关于如何将p:commandLink包含到p:columns块中的回答

在这种情况下,您真的需要
?如果没有,请告诉我们。我这里有一个使用
的例子,但首先我需要知道
是否是必须的。好的,我也可以使用,请启发我。没有人回答真正的问题:但是我如何将它用于35;{car[column.property]这是我真正的问题吗?我在你的主题中发现的唯一问题是:
换句话说,我如何使用
来获得这个
。上面的代码与你所需要的完全相同,但是在
中(你之前说过,在
中这样做没有问题)。看这里
<p:column headerText="R"
          style=" text-align: center;"
          width="10"
          rendered="true">
    <p:commandLink id="MRepShowButton" update=":form1:display" onclick="EditorDialog.show();"  title="Editer le compte rendu"> 
       <f:setPropertyActionListener value="#{exam}" target="#{dyna.selectedExamen}" />  
       <p:graphicImage id="img1" value="/images/study_Report_icons/Text/0.png" rendered="#{exam.examen.rapport.rapportWrittenState == null}"/>
       <p:graphicImage id="img2" value="/images/study_Report_icons/Text/#{exam.examen.rapport.rapportWrittenState}.png" rendered="#{exam.examen.rapport.rapportWrittenState != null}"/>
  </p:commandLink>
</p:column> 
column.setWidth(String.valueOf(columnmodel.get(i).getWidth() - widthOptimizer));
CommandLink rapstatelink = (CommandLink) application.createComponent(CommandLink.COMPONENT_TYPE);

rapstatelink.setId("MRepShowButton");
rapstatelink.setTitle("Editer le rapport du patient");
rapstatelink.setUpdate(":formero");
rapstatelink.setOnclick("EditorDialog.show();");


ValueExpression value = ef.createValueExpression(elc, "#{exam}", Cotation.class);
ValueExpression target = ef.createValueExpression(elc, "#{dyna.selectedExamen}", Cotation.class);
rapstatelink.addActionListener(new SetPropertyActionListenerImpl(target, value));
ValueExpression value1 = ef.createValueExpression(elc, "#{dyna.toHTML(dyna.selectedExamen.examen.rapport.rapportWrittenFile)}", String.class);
ValueExpression target1 = ef.createValueExpression(elc, "#{dyna.html}", String.class);
rapstatelink.addActionListener(new SetPropertyActionListenerImpl(target1, value1));

GraphicImage rapstateimage = (GraphicImage) application.createComponent(GraphicImage.COMPONENT_TYPE);
rapstateimage.setId("img1");
ValueExpression show1 = ef.createValueExpression(elc, "#{exam.examen.rapport.rapportWrittenState == null}", Boolean.class);
rapstateimage.setValueExpression("rendered", show1);
rapstateimage.setValue("/images/study_Report_icons/Text/0.png");
rapstatelink.getChildren().add(rapstateimage);

GraphicImage rapstateimage2 = (GraphicImage) application.createComponent(GraphicImage.COMPONENT_TYPE);
rapstateimage2.setId("img2");
ValueExpression patsategraphExp = ef.createValueExpression(elc, "/images/study_Report_icons/Text/#{exam.examen.rapport.rapportWrittenState}.png", Object.class);
rapstateimage2.setValueExpression("value", patsategraphExp);
ValueExpression show2 = ef.createValueExpression(elc, "#{exam.examen.rapport.rapportWrittenState != null}", Boolean.class);
rapstateimage2.setValueExpression("rendered", show2);
column.setStyleClass("imagero");

rapstatelink.getChildren().add(rapstateimage2);
column.getChildren().add(rapstatelink);
table.getChildren().add(column);
<p:commandButton id="MRepShowButton" update=":form1:display" onclick="EditorDialog.show();" icon="custom-icon" />
.custom-icon {
    background-image: url("#{facesContext.externalContext.request.contextPath}/resources/img/chart_stock.png") !important;
}
 <p:graphicImage name="images/#{car.year}.jpg" />
 <p:graphicImage library="images" name="#{car.year}.jpg" />