Struts2 Validation框架那些小事
一、Struts2 validation最開始就給我一個大挫折,按照官方文檔做好了demo,為一個msg字段建立required檢驗,可運行起來就是不攔截不檢驗。那個汗呀~~~~,搞了N就才發現理解錯誤,required是驗證是否為null的,而在jsp頁面里面建立一個名為msg的input即使你什么也不寫它也會給你傳***個"",應該使用的是requiredstring對msg檢驗才是我的目的。之后就是認認真真把validation的幾個type的意思搞懂了
二、搞定了前面的原因,把input返回值也設定成了輸入頁面,檢驗攔截成功了返回到了輸入頁面,然后就是不輸出該有的提示信息,把input換成s:textfield也不行。***原因是:我平時寫Struts2 validation應用都會把struts.ui.theme設置成simple,而這個主題是不會顯示錯誤信息的。把這個去掉就行了,要不這樣也行
Xml代碼
< ?xml:namespace prefix = s / >< s:textfield theme="xhtml">< /s:textfield> |
三 校驗失敗后返回一個莫名其妙的頁面,這個真。。。。。 這個還是吃完晚飯一下子才醒悟過來的。我使用了struts2***的convention插件,校驗失敗后會找input返回值,我并沒有顯式指定input頁面,所以convention插件會按照規則尋找actionName-input.jsp沒找到后就跑到actionName.jsp頁面去了,我說他怎么老跑到默認頁面去了呢,唉細節地方沒注意讓人給玩了。
四 、找到問題后我才想起來一年前我也曾經遇到過這個問題,還寫過一篇博客呢,不過早忘了,汗~~~~ 這個問題就是無論如何都會校驗失敗,無論msg是否輸入了值。 原因很簡單在action里msg字段我沒寫get方法,所以validation攔截器永遠得不到msg的值,所以永遠校驗失敗。
五、目前主要就這四個問題了, 一切都是在細節上,都是因為一些細小的東西沒注意到,經驗真重要啊。
【編輯推薦】