Grails 前缀为;渲染“;对于“元素”;渲染:inlinePng“;不受约束
我正在尝试使用Grails 前缀为;渲染“;对于“元素”;渲染:inlinePng“;不受约束,grails,grails-plugin,Grails,Grails Plugin,我正在尝试使用Grails渲染插件下载我的gsp页面的pdf。pdf包含数据URI形式的图像。我调用renderPdf从控制器传递我的模板和模型。但是,在GSP页面中,我必须检查包含dataURI的变量是否为空。这需要在一些地方完成,因此我使用了TagLib来执行逻辑。这很简单,如果dataURI变量是byte[]write out“”的实例,则写“无需报告的数据”。问题是我收到了错误消息,“元素“rendering:inlinePng”的前缀“rendering”未绑定。” 我不知道为什么会发
Grails渲染插件
下载我的gsp页面的pdf。pdf包含数据URI形式的图像。我调用renderPdf
从控制器传递我的模板和模型。但是,在GSP页面中,我必须检查包含dataURI的变量是否为空。这需要在一些地方完成,因此我使用了TagLib
来执行逻辑。这很简单,如果dataURI变量是byte[]write out“”的实例,则写“无需报告的数据”。问题是我收到了错误消息,“元素“rendering:inlinePng”的前缀“rendering”未绑定。”
我不知道为什么会发生这个错误,也不知道如何修复它。我已经研究了StackOverflow的其他类似问题,但没有找到有效的解决方案
GSP/HTML-为简单起见缩短
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/html">
<body>
<div id="dashboard-charts">
<table>
<tr>
<td style="border: 1px solid #ccc; vertical-align: top;"><p class="chartTitle">${message(code: 'dashboard.assessmentStatus.label', default: 'Assessment Status - Total Network')}</p>
<findData:dataImg data="${assessmentChart}" /></td>
</tr>
</table>
</div>
</body>
</html>
package com.company
class DashTagLib {
static namespace = "findData";
def dataImg = {attrs ->
def word = attrs.data;
if(word instanceof byte[]){
out << '<div>'
out << "<rendering:inlinePng bytes='${attrs.data}'/>"
out << '</div>'
}else{
out << '<p>'
out << 'No data to report'
out << '</p>'
}
}
}
${消息(代码:'dashboard.assessmentStatus.label',默认值:'Assessment Status-Total Network')}
TagLib.groovy
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/html">
<body>
<div id="dashboard-charts">
<table>
<tr>
<td style="border: 1px solid #ccc; vertical-align: top;"><p class="chartTitle">${message(code: 'dashboard.assessmentStatus.label', default: 'Assessment Status - Total Network')}</p>
<findData:dataImg data="${assessmentChart}" /></td>
</tr>
</table>
</div>
</body>
</html>
package com.company
class DashTagLib {
static namespace = "findData";
def dataImg = {attrs ->
def word = attrs.data;
if(word instanceof byte[]){
out << '<div>'
out << "<rendering:inlinePng bytes='${attrs.data}'/>"
out << '</div>'
}else{
out << '<p>'
out << 'No data to report'
out << '</p>'
}
}
}
package.com公司
类DashTagLib{
静态名称空间=“findData”;
def dataImg={attrs->
def word=attrs.data;
if(字节[]的字实例){
出来