我正在创建下面的代码的Web应用程序。
<p:commandButton ajax="false"
style="#{patentInfo.photoType.contains('application')?
'visibility:visible;width:200px;height:200px;
background-image: url(DisplayImage?mainID=tempo1&id=#{patentInfo.photoType});
background-repeat: no-repeat;background-size: 100% 100%;'
:
'visibility:hidden;width:2px;height:2px;'}">
我在使用Java类作为
DisplayImage
并将参数传递给那些作为mainID=tempo1&id=#{patentInfo.photoType}
的地方设置背景图像。在Java中,出于测试目的,我正在打印mainID
和id
。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&id=#{patentInfo.photoType});
并打印mainID
和id
时,我得到的值如下。mainID=temp1
和id=
我没有任何身份证件.....
当我使用
background-image: url(DisplayImage?mainID=tempo1&id=patentInfo.photoType);
并打印mainID
和id
时,我得到的值如下。mainID=temp1
和id=patentInfo.photoType
我在这里做错了什么?
我期望输出为
mainID=temp1
和id=application/pdf
最佳答案
问题是您的el中有#{ ... #{} ...}
。
尝试这样的事情:<p:commandButton ajax="false" style="#{patentInfo.photoType.contains('application')?'visibility:visible;width:200px;height:200px;background-image: url(DisplayImage?mainID=tempo1&id='.concat(patentInfo.photoType).concat(';background-repeat: no-repeat;background-size: 100% 100%;'):'visibility:hidden;width:2px;height:2px;'}">