expressionlanguage(el)未按预期工作

hi3rlvi2  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(316)

我正在创建一个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中,我正在打印 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&amp;id=#{patentInfo.photoType});` &打印 `mainID` &  `id` 我得到的值如下。 `mainID=temp1` &  `id=` 我没有任何身份证。。。。。
当我使用 `background-image: url(DisplayImage?mainID=tempo1&amp;id=patentInfo.photoType);` &打印 `mainID` &  `id` 我得到的值如下。 `mainID=temp1` &  `id=patentInfo.photoType` 我做错什么了?
我期望输出为 `mainID=temp1` &  `id=application/pdf` 
tzxcd3kk

tzxcd3kk1#

问题是你有 #{ ... #{} ...} 在你的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;'}">

相关问题