struts2 错误消息显示(s:fielderror )的时候老有前面的那个黑点,郁闷死了,感觉特别不爽,下面总结了集中解决的方法
?? 在表單校驗,類型轉(zhuǎn)換,文件上傳時的錯誤消息顯示是時老出現(xiàn)那個黑點,感到無比的郁悶,在網(wǎng)上找到了一些解決的方法,下面總結(jié)一下常用的一個方法:
???? 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包下,在修改里面的內(nèi)容,只需要將對應的ul,li,span標簽刪除就行,其他不要改,我修改過后的actionerror.ftl文件的內(nèi)容如下:
?? <#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了,如下:
??????
總結(jié)
以上是生活随笔為你收集整理的struts2 错误消息显示(s:fielderror )的时候老有前面的那个黑点,郁闷死了,感觉特别不爽,下面总结了集中解决的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali火狐浏览器设置中文
- 下一篇: react 调用webIm