struts2 错误消息显示(s:fielderror )的时候老有前面的那个黑点,郁闷死了,感觉特别不爽,下面总结了集中解决的方法

   在表单校验,类型转换,文件上传时的错误消息显示是时老出现那个黑点,感到无比的郁闷,在网上找到了一些解决的方法,下面总结一下常用的一个方法:

     1. 用CSS样式来控制将前面显示的黑点去掉,这种虽然显示好像没什么问题,但是标签仍然存在,看起来也不爽(我觉得还是不用这个)。

     2. 可以直接用  ${FieldErrors.fieldName[0]}获取fileName就是用来取出的是哪个字段的消息(这个方法可行,不过好像也有点不爽,抓狂

        3.  其实struts2是用freemarker模板来显示出错信息的,

                *  在html中的显示如下:                

                 <ul  class="errorMessage"  style="color:red" >
                      <li><span>用户名为空!!</span></li>
                     <li><span>密码不能为空!!</span></li>
                 </ul>
        struts2搜索模板是先从/WEB-INF/classes搜索,也就是我们在src目录下,struts2为我们提供了一些主题,xhtml是默认的主题,当然我们可以修改它的默认主题可以配置相应  的常量,我们设置为simple主题,如下:

       (1)在struts.xml文件配置常量(推荐),只需要做如下的配置:

               <constant name="struts.ui.theme" value="simple"></constant>

           (2) 在struts.properties文件中配置(不推荐),如下

                           struts.ui.theme=simple

       如果前面2个都配置了,则(2)配置的会覆(1)配置的

找到struts2-core-2.3.15.jar下面的template.simple然后将fielderror.ftl,actionmesage.ftl,actionerror.ftl解压出来,在到src目录下面新建一个包template.simple,将上面解压的3个ftl文件复制到template.simple包下,在修改里面的内容,只需要将对应的ul,li,span标签删除就行,其他不要改,我修改过后的actionerror.ftl文件的内容如下:

   <#if (actionErrors?? && actionErrors?size > 0)>
    <#list actionErrors as error>
        <#if error?if_exists != "">
            <#if parameters.escape>${error!?html}<#else>${error!}</#if>
        </#if>
    </#list>
</#if>

fielderror.ftl如下:

<#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/>
                        <#assign doneStartUlTag=true><#t/>
                    </#if><#t/>
                    <#list eValue as eEachValue><#t/>
                       <#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if>
                    </#list><#t/>
                </#if><#t/>
            </#list><#t/>
        </#list><#t/>
        <#if (haveMatchedErrorField && (!doneEndUlTag))><#t/>
            <#assign doneEndUlTag=true><#t/>
        </#if><#t/>
        <#else><#t/>
        <#if (eKeysSize > 0)><#t/>
            <#list eKeys as eKey><#t/>
                <#assign eValue = fieldErrors[eKey]><#t/>
                <#list eValue as eEachValue><#t/>
                   <#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if>
                </#list><#t/>
            </#list><#t/>
        </#if><#t/>
    </#if><#t/>
</#if><#t/>


其他的2个按照上面的修改就行,建议去安装个freemarker的插件,这样看起来更舒服,

最后就可以在页面上显示就OK了,如下:


      

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值