?
?? ?在 Struts2 中驗證真的比較容易,可以在 Action 中直接寫 validate ,也可以使用 validate 框架進行驗證,但是有個問題一直困擾了我,直到現(xiàn)在有個小程序要用到這個方面的知識,那就是驗證后如何很好地人性化地在 jsp 頁面中顯示了。
?
??? 大家都知道, Struts2 顯示驗證結(jié)果有一些方式,一般通過兩種方式,介紹如下:
?
1. 在頁面的上面或者某個位置全部顯示錯誤。 代碼:
< s:fielderror cssStyle = "color: red" ></ s:fielderror >?
這樣會顯示所有的錯誤信息,模擬效果如下:
2. 在每個字段下面或上面顯示,通過?
< s:fielderror cssStyle = "color: red" >
??? < s:param > XXX (標簽的 name 屬性,比如 username ) </ s:param >
</ s:fielderror >
例: 用 戶 名:
< input type = "text" name = "user.username" />
< s:fielderror cssStyle = "color: red" >
??? < s:param > username </ s:param >
</ s:fielderror >
顯示效果如下:
??? 上面的差不多是 Struts 默認顯示的兩種方式,但是我們常見的顯示方式并不是這樣的,所有我們需要自定義這種格式,我們的習(xí)慣是把錯誤信息顯示在某個出錯字段的后面,一行顯示,而它給了一個小黑點并且換了行,我們現(xiàn)在就來解決這個問題。 后面就是一步一步地進行,發(fā)現(xiàn)還真的解決了。這個時候也希望能夠看看上面的文章。現(xiàn)提供我解決自定義錯誤顯示方式的步驟。
?
1. ? 找到你的 struts2-core-2.XXX.jar 這個核心包,用軟件解壓;
2. ? 在 \struts2-core-2. XXX\template\simple 目錄下找到 fielderror.ftl (跟我們自定義格式非常有關(guān)系的文件);
3. ? 根據(jù) Struts2 模板中提到的,把上面的 fielderror.ftl 放到 WEB-INF/classes/template/ simple 目錄下,這個我當時以為就在 WEB-INF 下新建一個 classes 的文件夾,后來提示已經(jīng)存在,想想整個工程的結(jié)構(gòu)發(fā)現(xiàn), classes 是放 Java 編譯后的文件的,所有,這個時候的操作是在 Src 目錄下新建一個 template 的文件夾,再在里面新建一個 simple 的文件夾( template/ simple )(一定要注意建文件夾的步驟,是分兩個文件夾建而不是建一個文件夾 template. simple ),把 fielderror.ftl 放到里面,目錄結(jié)構(gòu)如下:
?
4. ? 修改 fielderror.ftl 配置文件,這一步才是關(guān)鍵,如何修改了,實際上也很簡單,就是把 <ul></ul><li></li> 標簽刪除(僅僅是刪除標簽而不刪除標簽里面的內(nèi)容),簡便的方法就是用記事本打開這個文件并用空格替換上面的每個標簽(一個一個來哦)。后面我會提供我已經(jīng)修改后的這個文件,如果大家不想修改的話就直接把我修改后的文件放到上面的目錄即可。
5. ? 上面一步就是把錯誤信息顯示前面的小黑點和換行都去掉了,是個關(guān)鍵步驟了,后面就來顯示了,還是用上面的方式
?
< s:fielderror ? cssStyle = "color: red" >
??? < s:param > XXX (標簽的 name 屬性,比如 username ) </ s:param >
</ s:fielderror >
要不要加 theme="simple" 大家可以試試看,我沒有加也是可以的,你還可以通過 css 來定義一下錯誤信息顯示的字體啊,顏色啊等,這里不再敘述。
6. ?? 整個步驟的原理就是 Struts 會加載一些配置文件,如果我們的 classess 里面沒有的話會找到 jar 包里面的,如果有的話優(yōu)先使用配置文件。我們這里的就是用我們修改的 fielderror.ftl 配置文件來覆蓋 jar 包里面的文件。
?
來看看我們修改后的自定義顯示錯誤信息吧,截圖如下:
?
?
參考來源: http://blog.sina.com.cn/usc3l
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
