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(字节[]的字实例){
出来