Grails在GSP中将set变量呈现为Controller和View之间的空/不规则定时

问题描述

我的视图中有一个NPE,并且我发现Controller和View之间的时间安排是意外的:

StatisticController代码摘录:

def redRecords = recordsPrivate(resultHash,RecordFlag.Colour.RED.toString(),10,1)
                 // result of this is a LinkedHashMap
  log.debug("RED RECORDS: ".concat(redRecords.toString()))
  render(
    view: 'show',model: [redRecords : redRecords]
  )
)

GSP代码摘录:

<h3 class="panel-title">${redRecords.getAt("recordsTotal")} />

出现错误

URI        /ygor/statistic/show
Class      java.lang.NullPointerException
Message    Error evaluating expression [redRecords.getAt("recordsTotal")] on line [237]:     
Caused by  Cannot get property 'recordsTotal' on null object

日志摘录:

2020-10-01 20:02:22,663 [http-nio-8092-exec-4] DEBUG export.DataContainer  - marking duplicate IDs ...
| Error 2020-10-01 20:02:24,116 [http-nio-8092-exec-9] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /ygor/statistic/show - 
    parameters:
    originHash: 2d54a1749454192bb156652acb68157a
    resultHash: 8a9bb3f9cf090fc6582f2a6b0ddfdecd
    Cannot get property 'recordsTotal' on null object. Stacktrace follows:
    Message: Error evaluating expression [redRecords.getAt("recordsTotal")] on line [237]:        
    Cannot get property 'recordsTotal' on null object
...
2020-10-01 20:09:21,416 [http-nio-8092-exec-5] DEBUG ygor.StatisticController  - RED RECORDS 1: [recordsTotal:0,recordsFiltered:0,draw:1,displayStart:0,data:[]]

现在,很明显,在处理Controller代码之前已渲染视图。

  • 这怎么可能?
  • 我该如何解决

侧面说明:视图可能要花费一秒钟的时间才能呈现,具体取决于要显示的数据大小。 (除了这里的redRecords之外,还有更多内容,为了清楚起见,在此省略。)

非常感谢您的光临!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)