Grails 2.0:使用变量作为图像资源



我正在传递一个变量logo,其中包含从我的控制器到GSP的图像文件的文件名,然后我尝试像这样显示图像:

<img src="${resource(dir:'images',file:"${logo}")}" alt="Logo" border="0" />

即使变量logo包含正确的值,我得到一个Unclosed GSP expression错误:

java.lang.RuntimeException: Error initializing GroovyPageView
at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:26) ~[plugin-classes/:na]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_26]
at java.lang.Thread.run(Thread.java:662) [na:1.6.0_26]
Caused by: org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Unclosed GSP expression
... 4 common frames omitted

${logo}替换为文件名有效

我做错了什么?

Thanks a lot

乔纳斯

您正在尝试将表达式语言嵌入到表达式语言中。

替换:

 <img src="${resource(dir:'images',file:"${logo}")}" alt="Logo" border="0" /> 

 <img src="${resource(dir:'images',file:logo)}" alt="Logo" border="0" />

在EL中你可以直接引用变量

Ernest是对的,在这种情况下你不应该使用GString。实际的错误是没有正确地引用值。你也可以写

<img src='${resource(dir:"images",file:"${logo}")}' alt="Logo" border="0" />

(注意单引号和双引号,它们是正确关闭的)

相关内容

  • 没有找到相关文章

最新更新