Struts學習之手動驗證

* 首先要從頁面中獲取對應的標簽name屬性的值,在動作類action中聲明同名的屬性,提供get和set方法
?? ?* 要繼承ActionSupport類或者實現Validateable接口
?? ?* 重寫Validateable接口的validate()方法
?? ??? ?* 前提是:要保證setUsername()、validate()、login()方法要按照這個先后順序執行
?? ?* 如果登錄失敗,如何處理:
?? ??? ?* this.addFieldError( key, value);
?? ??? ??? ?* key:錯誤提示字段
?? ??? ??? ?* value:錯誤提示信息
?? ?* 什么時候才是驗證通過?
?? ??? ?* 驗證通過:1、map集合不存在;2、map集合存在并為空
?? ??? ?* 驗證不通過:map集合存在并且不為空
?? ?* 分析需求:
?? ??? ?* 用戶名不能為null ,""
?? ??? ?* 密碼不能為null, "" ,并且密碼的長度6-12之間
?? ?* 針對所有業務方法進行驗證還是針對某個指定業務方法進行驗證?
?? ??? ?* 重寫的validate()方法,針對所有業務方法進行驗證
?? ??? ?* 重寫的validate()方法加上要驗證的指定的業務方法名(業務方法名的首字母大寫),實現針對某個指定的業務方法進行驗證
?? ??? ??? ?* 為什么要這樣進行拼接?因為struts2框架底層拼接,如果不這樣寫,底層就找不到對應方法名
struts2框架驗證(xml方式):
?? ?* 首先要從頁面中獲取對應的標簽name屬性的值,在動作類action中聲明同名的屬性,提供get和set方法
?? ?* 創建一個xml格式驗證文件:
?? ??? ?* 命名方式:ActionClassName-validation.xml,ActionClassName指的是動作類action的名稱
?? ??? ?* <validators>標簽:根元素
?? ??? ?* field:指定action中要校驗的屬性,實際上就是頁面中表單的name屬性的值
?? ??? ??? ?* name:指定頁面中表單的name屬性的值
?? ??? ?* field-validator:指定驗證規則
?? ??? ??? ?* type:指定驗證規則名稱,
?? ??? ??? ??? ??? ?struts2框架提供的驗證規則放在xwork-core-xxx.jar
?? ??? ??? ??? ??? ?下的com\opensymphony\xwork2\validator\validators
?? ??? ??? ??? ??? ?的default.xml配置文件。
?? ??? ?* param:向底層的驗證規則傳遞的參數
?? ??? ?* message:驗證失敗時,提供的錯誤提示信息
?? ?* 如果要對指定方法進行驗證的話:
?? ??? ?* xml驗證文件的命名方式:ActionClassName-ActionName-validation.xml,
?? ??? ??? ??? ??? ??? ??? ??? ?ActionName對應的是struts.xml文件對應的action標簽的name屬性的值
?? ?
???

轉載于:https://www.cnblogs.com/sunfie/p/4704447.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375670.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《啟示錄-打造用戶喜愛的產品》讀書小結

2014年大學畢業和研究生入學之間的暑假&#xff0c;我讀完了這本書。該書主要內容為介紹產品經理的一些工作經驗。分三方面內容系統介紹&#xff1a;人員、流程和產品。第一遍讀后&#xff0c;了解了一些產品經理的工作內容&#xff0c;也學習了很多優秀產品經理的理念。轉載于…

循環多少次?

循環多少次&#xff1f; Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 17 Accepted Submission(s) : 12 Problem Description我們知道&#xff0c;在編程中&#xff0c;我們時常需要考慮到時間復雜度&#xff0…

關于數據庫表的“記錄”與“字段”

何謂表的記錄&#xff1a; 就是數據庫中的一張表中的隨便任意一行稱之為記錄 何謂表的字段&#xff1a; 就是數據庫中的一張表中的隨便任意一列稱之為字段轉載于:https://www.cnblogs.com/cyh2009/p/4706021.html

error: use of deleted function

本文案例僅供參考 出錯的代碼如下&#xff1a; TEST(Test, test1) {TestImpl impl TestImpl(para1, para2);ASSERT_EQ("jkj", impl.func("22", "33", "44")); }實際應該這樣&#xff1a; TEST(Test, test1) {TestImpl impl(para1, …

WPF PasswordBox不支持綁定解決方法

PasswordBox的Password屬性因為安全原因不支持直接綁定&#xff0c;可以使用依賴屬性實現。直接插入代碼 public class PasswordBoxHelper{public static readonly DependencyProperty PasswordProperty DependencyProperty.RegisterAttached("Password",typeof(stri…

error: expected unqualified-id before 'public'

Error Coding class A{ }&#xff1b;class B public : A { };Correct Coding class A{ };class B : public A{ };

C# 方法返回值的個數

方法返回值類型總的來說分為值類型&#xff0c;引用類型,Void 有些方法顯示的標出返回值 public int Add(int a,int b) {return ab; } 有些方法隱式的返回返回值&#xff0c;我們可以將上面的方法改改&#xff1a; public void Add(int a,int b,out int sum) {sumab; } 怎么樣&…

【Java】Java里String 的equals和==

Java里面有對象和對象的引用的概念&#xff0c;在String方面&#xff0c;比較的是引用&#xff0c;equals比較的是對象的具體值。 String s1 new String("abc");String s2 new String("abc");System.out.println(s1 s2);System.out.println(s1.equals(s…

marked override, but does not override

檢查這個函數對應的基類函數 看是否是虛函數看函數參數是否對應

STL中的lower_bound和upper_bound的理解

STL迭代器表述范圍的時候&#xff0c;習慣用[a, b)&#xff0c;所以lower_bound表示的是第一個不小于給定元素的位置 upper_bound表示的是第一個大于給定元素的位置。 譬如&#xff0c;值val在容器內的時候&#xff0c;從lower_bound到 upper_bound表示的就是整個容器中與val相…

because the following virtual functions are pure within

構建了包含純虛函數的對象 包含純虛函數的類不能實例化為對象

C ~ 鏈式隊列與循環隊列

此處的鏈式與循環隊列可以應用于BFS和樹的層序遍歷。下面是對其結構和基本操作的程序描述。 1、循環隊列 解決循環隊列的隊空和隊滿的方法&#xff1a; [1].增加一個參數count&#xff0c;用來記錄數組中當前元素的個數&#xff1b; [2].為避免隊空和滿兩狀態混淆&#xff0c;少…

Hexo之部署github

最近開始學NodeJs&#xff0c;準備也在github上弄個一個Hexo博客練練過程中遇到一些問題總結一下。希望對遇到同樣問題的同學能有個幫助少走一些彎路。 - 其實用windows或mac客戶端直接去同步很順利沒遇到什么問題。主要是在使用Hexo deploy命令的時候。 我的配置文件deploy部分…

You have unstaged changes.

執行git rebase出錯 原因&#xff1a;有未提交的修改 解決&#xff1a;執行git stash暫時保存修改&#xff0c;rebase后&#xff0c;執行git stash pop

[bootstrap] 打造一個簡單的系統模板(1) 左側折疊菜單

1. 前言 最近需要做一個后臺管理系統&#xff0c;我打算使用bootstrap弄一個好看的后臺模板。網上的好多模板我覺的css和js有點重。 于是就打算完全依靠bootstrap搭建一個屬于自己的模板。 首先從左側的折疊菜單開始。看圖。 2. CSS 代碼 以下是自定義的css代碼&#xff0c;由于…

將gcc/g++鏈接到指定版本

安裝指定版本&#xff1a; sudo apt-get install gcc-4.8 sudo apt-get install g-4.8以上命令默認安裝的為4.8.5版本&#xff0c;支持c11 建立軟連接 cd /usr/bin如果已經裝有gcc或者g&#xff0c;需要先移除原先的軟連接sudo rm gcc sudo rm g建立新的軟連接 sudo ln -s g…

23種設計模式的優點與缺點概況

設計模式 標簽&#xff08;空格分隔&#xff09;&#xff1a; 設計模式優點 應用場景 整理自《設計模式之禪》 單例模式 優點&#xff1a; 只有一個實例&#xff0c;減少了內存開支&#xff1b;可以避免對系統資源的多重占用&#xff1b;可以在系統中設置全局的訪問點&#xff…

How Many Shortest Path

zoj2760:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode2760 題意&#xff1a;給你一張有向帶權圖&#xff0c;然后問你最短路徑有多少條。 題解&#xff1a;這一題用到了網絡流&#xff0c;一開始&#xff0c;我想到用找到一條最短路&#xff0c;然后刪除這條…

pat00-自測5. Shuffling Machine (20)

00-自測5. Shuffling Machine (20) 時間限制400 ms內存限制65536 kB代碼長度限制8000 B判題程序Standard作者CHEN, YueShuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid …

E488: Trailing characters:

情景&#xff1a; 對vim進行配置&#xff0c;配置完成后進行保存&#xff0c;配置完成后打開其他文件時報錯。原因&#xff1a; vim 配置文件中保存不合乎語法的語句&#xff0c;報錯時如下&#xff1a; #顯示行號 set number#字符導致的錯誤&#xff0c;改成"即可。 vi…