Validation 是否可以使用freemarker';s<@spring.ror用于在div中而不是在span中显示错误

Validation 是否可以使用freemarker';s<@spring.ror用于在div中而不是在span中显示错误,validation,spring-mvc,freemarker,Validation,Spring Mvc,Freemarker,代码: 输出: <@spring.formInput 'myForm.spouseEmail' 'id="spouseEmail" class="text"'/> <@spring.showErrors ', ' 'error'/> 格式不正确的电子邮件地址 我想要的是: <span class="error">not a well-formed email address</span> 格式不正确的电子邮件地址 没有,但您可以轻松编写自

代码:


输出:

<@spring.formInput 'myForm.spouseEmail' 'id="spouseEmail" class="text"'/>
<@spring.showErrors ', ' 'error'/>
格式不正确的电子邮件地址
我想要的是:

<span class="error">not a well-formed email address</span>
格式不正确的电子邮件地址

没有,但您可以轻松编写自己的宏来执行任何您想要的操作。从spring.batherrors本身获得灵感。

@Mike:看来你很难理解宏的本质。他们已经编写了freemarker脚本,让您的生活更轻松。你总是可以

有些人认为这很明显,但我自己发现,要知道如何查看SpringFreeMarker宏源代码并不容易。您可以在Eclipse的“引用库”中导航到package
org/springframework/spring-webmvc-3.0.5.jar/org/springframework/web/servlet/view/freemarker/spring.ftl

下面是从“spring.ftl”中获得的宏“showErrors”:


${error}
${error}
${separator}
要实现您的目标,非常简单:只需编写一个与上述代码完全相同的自定义宏,将
span
替换为
div

<div class="error">not a well-formed email address</div>
<#macro showErrors separator classOrStyle="">
    <#list status.errorMessages as error>
    <#if classOrStyle == "">
        <b>${error}</b>
    <#else>
        <#if classOrStyle?index_of(":") == -1><#assign attr="class"><#else><#assign attr="style"></#if>
        <span ${attr}="${classOrStyle}">${error}</span>
    </#if>
    <#if error_has_next>${separator}</#if>
    </#list>
</#macro>