请问用validation.xml来验证框架的时候,报错信息如何设置它的显示地方,我加了个<s:fielderror/>,但是同一个错误信息会显示2条,一条是显示在要验证的属性上面一行,还有一条显示在了我加<s:fielderror/>的地方。这个应该怎么去掉啊。

解决方案 »

  1.   

    就是在jsp页面那里有两个<html:text property=""/><html:errors property=""/>
    就写在erors的property中,
      

  2.   

    在struts2-core-x.x.x.jar/template/simple文件夹下找到fielderror.ftl文件并复制,在src下创建文件路径template/simple并粘贴文件,修改其中的代码(去掉里面的所有<ul></ul><li></li>标签)
    下面是修改过后的源码:
    <#--
    /*
     * $Id: fielderror.ftl 927354 2010-03-25 11:41:30Z lukaszlenart $
     *
     * Licensed to the Apache Software Foundation (ASF) under one
     * or more contributor license agreements.  See the NOTICE file
     * distributed with this work for additional information
     * regarding copyright ownership.  The ASF licenses this file
     * to you under the Apache License, Version 2.0 (the
     * "License"); you may not use this file except in compliance
     * with the License.  You may obtain a copy of the License at
     *
     *  http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing,
     * software distributed under the License is distributed on an
     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     * KIND, either express or implied.  See the License for the
     * specific language governing permissions and limitations
     * under the License.
     */
    -->
    <#if fieldErrors??><#t/>
        <#assign eKeys = fieldErrors.keySet()><#t/>
        <#assign eKeysSize = eKeys.size()><#t/>
        <#assign doneStartUlTag=false><#t/>
        <#assign doneEndUlTag=false><#t/>
        <#assign haveMatchedErrorField=false><#t/>
        <#if (fieldErrorFieldNames?size > 0) ><#t/>
            <#list fieldErrorFieldNames as fieldErrorFieldName><#t/>
                <#list eKeys as eKey><#t/>
                    <#if (eKey = fieldErrorFieldName)><#t/>
                        <#assign haveMatchedErrorField=true><#t/>
                        <#assign eValue = fieldErrors[fieldErrorFieldName]><#t/>
                        <#if (haveMatchedErrorField && (!doneStartUlTag))><#t/>
                        <#rt/>
                            <#if parameters.id?if_exists != "">
                                    id="${parameters.id?html}"<#rt/>
                            </#if>
                            <#if parameters.cssClass??>
                                    class="${parameters.cssClass?html}"<#rt/>
                                <#else>
                                    <#rt/>
                            </#if>
                            <#if parameters.cssStyle??>
                                    style="${parameters.cssStyle?html}"<#rt/>
                            </#if>
                            <#assign doneStartUlTag=true><#t/>
                        </#if><#t/>
                        <#list eValue as eEachValue><#t/>
                            <span><#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if></span>
                        </#list><#t/>
                    </#if><#t/>
                </#list><#t/>
            </#list><#t/>
            <#if (haveMatchedErrorField && (!doneEndUlTag))><#t/>
                <#assign doneEndUlTag=true><#t/>
            </#if><#t/>
            <#else><#t/>
            <#if (eKeysSize > 0)><#t/>
            <#rt/>
                <#if parameters.cssClass??>
                        class="${parameters.cssClass?html}"<#rt/>
                    <#else>
                        <#rt/>
                </#if>
                <#if parameters.cssStyle??>
                        style="${parameters.cssStyle?html}"<#rt/>
                </#if>
                <#list eKeys as eKey><#t/>
                    <#assign eValue = fieldErrors[eKey]><#t/>
                    <#list eValue as eEachValue><#t/>
                        <span><#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if></span>
                    </#list><#t/>
                </#list><#t/>
            </#if><#t/>
        </#if><#t/>
    </#if><#t/>