我正在创建下面的代码的Web应用程序。

<p:commandButton ajax="false"
 style="#{patentInfo.photoType.contains('application')?
 'visibility:visible;width:200px;height:200px;
  background-image: url(DisplayImage?mainID=tempo1&amp;id=#{patentInfo.photoType});
  background-repeat: no-repeat;background-size: 100% 100%;'
 :
 'visibility:hidden;width:2px;height:2px;'}">


我在使用Java类作为DisplayImage并将参数传递给那些作为mainID=tempo1&amp;id=#{patentInfo.photoType}的地方设置背景图像。在Java中,出于测试目的,我正在打印mainIDid

DipalyImage.java

String mainID = request.getParameter("mainID");
String id = request.getParameter("id");
System.out.println("mainID=="+mainID+", id=="+id);


patentInfo.photoType将数据保存为application/pdf

问题出在我传递的背景图像参数上。


当我使用background-image: url(DisplayImage?mainID=tempo1&amp;id=#{patentInfo.photoType});并打印mainIDid时,我得到的值如下。

mainID=temp1id=

我没有任何身份证件.....
当我使用background-image: url(DisplayImage?mainID=tempo1&amp;id=patentInfo.photoType);并打印mainIDid时,我得到的值如下。

mainID=temp1id=patentInfo.photoType


我在这里做错了什么?

我期望输出为mainID=temp1id=application/pdf

最佳答案

问题是您的el中有#{ ... #{} ...}

尝试这样的事情:

<p:commandButton ajax="false" style="#{patentInfo.photoType.contains('application')?'visibility:visible;width:200px;height:200px;background-image: url(DisplayImage?mainID=tempo1&amp;id='.concat(patentInfo.photoType).concat(';background-repeat: no-repeat;background-size: 100% 100%;'):'visibility:hidden;width:2px;height:2px;'}">

08-07 06:41