0

我从 struts2 源中获取了 fielderror.flt,我想制作一个 freemarker 宏来自定义显示字段错误,但是当宏调用时,我收到以下错误:

预期的哈希值。fieldErrors 在 WEB-INF/templates/flt/admin/isis/macros.flt 的第 190 行第 22 列上评估为 freemarker.core.Macro。有问题的

操作说明:

==> 赋值:eKeys=fieldErrors.keySet() [on line 190, column 5 in WEB-INF/templates/flt/admin/isis/macros.flt] in user-directive fieldError_a [on line 6, column 17 in WEB -INF/pages/admin/security/simpleUserGroup/edit/editSimpleUserGroupMainContent.flt] in include "editSimpleUserGroupMainContent.flt" [on line 76, column 33 in

WEB-INF/pages/admin/security/simpleUserGroup/edit/editSimpleUserGroupLayout.flt]

程序员的 Java 回溯: ---------- freemarker.template.TemplateException:预期的哈希。fieldErrors 在 WEB-INF/templates/flt/admin/isis/macros.flt 的第 190 行第 22 列上评估为 freemarker.core.Macro。在 freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135) 在 freemarker.core.Dot._getAsTemplateModel(Dot.java:78) .....

代码来自原始 struts2 flt 模板。问题是什么?

4

1 回答 1

0

一种解决方案是像这样将 struts2 标签与 freemarker 混合

<#macro fieldErrorsTag>

<div id="system-message-container">
            <@s.if test="hasFieldErrors()">
        <div class="alert alert-error" id="system-message">
            <h4 class="alert-heading"></h4>
            <div>
                            <@s.iterator value="fieldErrors">
                                <p><@s.property escape="false" /></p>
                            </@s.iterator>
            </div>
        </div>
       </@s.if>
</div>
</#macro>

但我认为应该避免混合标签

于 2013-10-17T06:15:19.280 回答