如何自定義Struts2表單驗證後的錯誤資訊顯示格式/樣式
如何自定義Struts2表單驗證後的錯誤資訊顯示格式/樣式 (s:fielderror,換行,黑點)
前面一段時間學過一些Struts2的知識,感覺Struts2和1.x還是有很大的差別的,我還不好說1.x肯定會過時還是2.0會很快流行,這畢竟是需要作為導向的。 在Struts2中驗證真的比較容易,可以在Action中直接寫validate,也可以使用validate框架進行驗證,這個我覺得比Struts1.x方便了很多,但是有個問題一直困擾了我,直到現在有個小程式要用到這個方面的知識,那就是驗證後如何很好地人性化地在jsp頁面中顯示了。 大家都知道,Struts2顯示驗證結果有一些方式,一般通過兩種方式,介紹如下: 1. 在頁面的上面或者某個位置全部顯示錯誤 程式碼:<s:fielderror cssStyle="color: red"></s:fielderror> 這樣會顯示所有的錯誤資訊,模擬效果如下: 2.在每個欄位下面或上面顯示,通過 <s:fielderror cssStyle="color: red"> <s:param>XXX(標籤的name屬性,象user.username)</s:param> </s:fielderror> 例: 用 戶 名: <input type="text" name="user.username" /> <s:fielderror cssStyle="color: red"> <s:param>user.username</s:param> </s:fielderror>顯示效果如下: 上面的差不多是Struts預設顯示的兩種方式,但是我們常見的顯示方式並不是這樣的,所有我們需要自定義這種格式,我們的習慣是把錯誤資訊顯示在某個出錯欄位的後面,一行顯示,而它給了一個小黑點並且換了行,我們現在就來解決這個問題。 這個問題困擾了我很久,真的很久以前想過,但是沒有徹底地解決,一直留到現在,今天在google上搜了很久,終於給解決了,現在分享一下解決的途徑。 先提供網上的思路給大家(關鍵解決的思路) 1. struts2表單驗證_錯誤資訊的顯示問題 中提到 引用 10 樓 starwar2030 的回覆: 可以在CSS中定義 不需要那麼複雜的,你將struts-core*中的template解出來,然後你把它放到專案的WEB-INF下,在struts.properties中新增程式碼
發表於:2008-08-04 09:47:3114樓得分:0 來源:(http://blog.sina.com.cn/s/blog_5d31611a0100eubo.html) - 如何自定義Struts2表單驗證後的錯誤資訊顯示格式/樣式_李順利_新浪部落格建議需要定義樣式的同志看下自定義theme 這章的內容 還有 theme="simple" 是放在form標籤內的
2. struts2 的 fielderror 樣式問題 中提到 可以改一下STRUTS2的錯誤資訊模板. fielderror.ftl 這個裡面可以改它的樣式
3. Struts2 模板 中提到 先前有網友問過我,他用了 Struts2 的校驗,但是錯誤輸出是在輸入框的上方,但希望錯誤資訊是顯示在輸入框的右方,該如何做。當時我只告訴了他要修改模板檔案,也只是大概告訴了他是在某個 template 目錄下的一個 ftl 檔案,因那時具體操作自己也不太清楚。現在知道了線索,但實際修改還是很麻煩的。
這是我整理出來的一些思路,但是看到這些的時候,特別是第三條Struts2模板的時候,感覺自己有點思路了,後面就是一步一步地進行,發現還真的解決了。這個時候也希望能夠看看上面的文章。現提供我解決自定義錯誤顯示方式的步驟。 1. 找到你的struts2-core-2.XXX.jar這個核心包,用軟體解壓; 2. 在\struts2-core-2. XXX\template\simple目錄下找到fielderror.ftl(跟我們自定義格式非常有關係的檔案); 3. 根據Struts2模板中提到的,把上面的fielderror.ftl放到WEB-INF/classes/template/simple目錄下,這個我當時以為就在WEB-INF下新建一個classes的資料夾,後來提示已經存在,想想整個工程的結構發現,classes是放Java編譯後的檔案的,所有,這個時候的操作是在Src目錄下新建一個template的資料夾,再在裡面新建一個simple的資料夾(template/simple)(一定要注意建資料夾的步驟,是分兩個資料夾建而不是建一個資料夾template.simple),把fielderror.ftl放到裡面,目錄結構如下: 4. 修改fielderror.ftl配置檔案,這一步才是關鍵,如何修改了,實際上也很簡單,就是把<ul></ul><li></li>標籤刪除(僅僅是刪除標籤而不刪除標籤裡面的內容),簡便的方法就是用記事本開啟這個檔案並用空格替換上面的每個標籤(一個一個來哦)。後面我會提供我已經修改後的這個檔案,如果大家不想修改的話就直接把我修改後的檔案放到上面的目錄即可。 5. 上面一步就是把錯誤資訊顯示前面的小黑點和換行都去掉了,是個關鍵步驟了,後面就來顯示了,還是用上面的方式 <s:fielderror cssStyle="color: red"> <s:param>XXX(標籤的name屬性,象user.username)</s:param> </s:fielderror> 要不要加theme="simple"大家看著辦,反正我是沒加,也是可以的,還有,這個時候,你就可以通過css來定義一下錯誤資訊顯示的字型啊,顏色啊等,這裡不再敘述。 6. 整個步驟的原理就是Struts會載入一些配置檔案,如果我們的classess裡面沒有的話會找到jar包裡面的,如果有的話優先使用配置檔案。我們這裡的就是用我們修改的fielderror.ftl配置檔案來覆蓋jar包裡面的檔案。 7. 來看看我們修改後的自定義顯示錯誤資訊吧,截圖如下: |
相關文章
- 顯示驗證的錯誤資訊
- jQuery Validate自定義驗證錯誤資訊jQuery
- jQuery Validate自定義錯誤資訊顯示位置jQuery
- 表單驗證自定義格式輸出
- HTML5 自定義驗證資訊顯示方式HTML
- Laravel 自定義表單驗證-自定義驗證規則Laravel
- PbootCMS如何取消後臺、留言、自定義表單驗證碼boot
- Layui 自定義表單驗證UI
- jQuery Validate自定義表單元素驗證通過和不通過的樣式jQuery
- 使用表單驗證,建立資料驗證層,Ajax 統一返回驗證錯誤資訊
- SpringBoot-表單驗證-統一異常處理-自定義驗證資訊源Spring Boot
- Laravel/Lumen 自定義錯誤日誌格式過濾堆疊資訊Laravel
- Request 驗證錯誤沒有返回錯誤資訊?
- Laravel 自定義表單請求驗證忽略某些欄位驗證Laravel
- 自定義 ocelot 中介軟體輸出自定義錯誤資訊
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- Flask_restful 之 自定義錯誤資訊FlaskREST
- 快速顯示oracle錯誤號的含義Oracle
- HTML5 setCustomValidity()自定義驗證資訊HTML
- HTML5 setCustomValidity() 自定義驗證資訊HTML
- Michael 的 Laravel 學習總結:區分同一頁面中不同表單的表單驗證錯誤資訊Laravel
- 如何自定義 drag 樣式
- pbootcms提交留言、提交自定義表單時取消驗證碼boot
- 如何自定義終端顯示配置
- 小程式自定義表單校驗
- Laravel, vee-validate, 阿波羅 自定義表單時時驗證Laravel
- 如何自定義radio按鈕的樣式
- Flask-restful 用法及自定義引數錯誤資訊FlaskREST
- Sharepoint 2013內容查詢Web部件自定義顯示樣式(實戰)Web
- Laravel 5.5 Validator 自定義錯誤返回訊息Laravel
- Laravel 解決 validate 驗證 Ajax 表單請求驗證失敗報 422 錯誤Laravel
- opencv imshow 函式顯示 float64 格式錯誤_cv2_imshow floatOpenCV函式
- Bartender 4:圖示顯示切換大變樣,還能在選單欄自定義文字
- 自定義react資料驗證元件React元件
- .net 透過特性及繼承IValidatableObject完成自定義表單驗證繼承Object
- cnBlogs的自定義樣式
- 自定義一個簡單的資料模型驗證器類,可用於各類驗證場景,待後續完善模型
- [提問交流]後臺新增自定義選單左側不顯示子選單的進
- Laravel 的 Validation 檢索驗證錯誤訊息Laravel