【问题标题】:Struts2 change fielderrors.fltStruts2 更改 fielderrors.flt
【发布时间】:2013-10-25 11:42:59
【问题描述】:

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

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

说明:

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

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

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

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

【问题讨论】:

  • 你是说原来的模板也用fieldErrors.keySet()?那么在你的情况下是什么定义了fieldErrors 宏?
  • 我不知道我没有找到任何评论

标签: templates struts2 freemarker


【解决方案1】:

一种解决方案是像这样将 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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多