精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Struts2教程:使用validate方法驗證數據

開發 后端
本文為Struts2教程,本部分教你如何使用validate方法驗證數據。Struts2雖然在大版本號上是第二個版本,但基本上在配置和使用上已經完全顛覆了Struts1.x的方式。

在Struts2中最簡單的驗證數據的方法是使用validate。我們從ActionSupport類的源代碼中可以看到,ActionSupport類實現了一個Validateable接口。這個接口只有一個validate方法。如果Action類實現了這個接口,Struts2在調用execute方法之前首先會調用這個方法,我們可以在validate方法中驗證,如果發生錯誤,可以根據錯誤的level選擇字段級錯誤,還是動作級錯誤。并且可使用addFieldError或addActionError加入相應的錯誤信息,如果存在Action或Field錯誤,Struts2會返回“input”(這個并不用開發人員寫,由Struts2自動返回),如果返回了“input”,Struts2就不會再調用execute方法了。如果不存在錯誤信息,Struts2在***會調用execute方法。

這兩個add方法和ActionErrors類中的add方法類似,只是add方法的錯誤信息需要一個ActionMessage對象,比較麻煩。除了加入錯誤信息外,還可以使用addActionMessage方法加入成功提交后的信息。當提交成功后,可以顯示這些信息。

以上三個add方法都在ValidationAware接口中定義,并且在ActionSupport類中有一個默認的實現。其實,在ActionSupport類中的實現實際上是調用了ValidationAwareSupport中的相應的方法,也就是這三個add方法是在ValidationAwareSupport類中實現的,代碼如下:

  1. private final ValidationAwareSupport validationAware = new ValidationAwareSupport();  
  2.  
  3. public void addActionError(String anErrorMessage)   
  4. {      validationAware.addActionError(anErrorMessage);  
  5. }  
  6. public void addActionMessage(String aMessage)   
  7. {  
  8.     validationAware.addActionMessage(aMessage);  
  9. }  
  10. public void addFieldError(String fieldName, String errorMessage)   
  11. {  
  12.     validationAware.addFieldError(fieldName, errorMessage);  
  13. }  

下面我們來實現一個簡單的驗證程序,來體驗一個validate方法的使用。

先來在Web根目錄建立一個主頁面(validate.jsp),代碼如下:

  1. < %@ page language="java" import="java.util.*" pageEncoding="GBK"%> 
  2. < %@ taglib prefix="s" uri="/struts-tags" %> 
  3. < html> 
  4.   < head> 
  5.     < title>驗證數據< /title> 
  6.   < /head> 
  7.     
  8.   < body> 
  9.     < s:actionerror/> 
  10.     < s:actionmessage/> 
  11.     < s:form action="validate.action"  theme="simple"> 
  12.         輸入內容:< s:textfield name="msg"/> 
  13.          < s:fielderror key="msg.hello" /> 
  14.          < br/>   
  15.         < s:submit/> 
  16.     < /s:form> 
  17.   < /body> 
  18. < /html> 

在上面的代碼中,使用了Struts2的tag:< s:actionerror>、< s:fielderror>和< s:actionmessage>,分別用來顯示動作錯誤信息,字段錯誤信息,和動作信息。如果信息為空,則不顯示。

現在我們來實現一個動作類,代碼如下:

  1. package action;  
  2.  
  3. import javax.servlet.http.*;  
  4.  
  5. import com.opensymphony.xwork2.ActionSupport;  
  6. import org.apache.struts2.interceptor.*;  
  7.  
  8. public class ValidateAction extends ActionSupport  
  9. {  
  10.     private String msg;  
  11.     public String execute()   
  12.     {  
  13.         System.out.println(SUCCESS);  
  14.         return SUCCESS;  
  15.     }  
  16.     public void validate()  
  17.     {  
  18.         if(!msg.equalsIgnoreCase("hello"))  
  19.         {  
  20.             System.out.println(INPUT);  
  21.             this.addFieldError("msg.hello""必須輸入hello!");  
  22.             this.addActionError("處理動作失敗!");  
  23.         }  
  24.         else 
  25.         {  
  26.             this.addActionMessage("提交成功");  
  27.         }  
  28.     }  
  29.     public String getMsg()  
  30.     {  
  31.         return msg;  
  32.     }  
  33.     public void setMsg(String msg)  
  34.     {  
  35.         this.msg = msg;  
  36.     }  
  37. }  

大家從上面的代碼可以看出,Field錯誤需要一個key(一般用來表示是哪一個屬性出的錯誤),而Action錯誤和Action消息只要提供一個信息字符串就可以了。

***來配置一下這個Action,代碼如下:

  1. < package name="demo" extends="struts-default"> 
  2.     < action name="validate" class="action.ValidateAction"> 
  3.         < result name="success">/error/validate.jsp< /result> 
  4.         < result name="input">/error/validate.jsp< /result> 
  5.     < /action> 
  6. < /package> 

假設應用程序的上下文路徑為demo,則可通過如下的URL來測試程序:

http://localhost:8080/demo/validate.jsp

我們還可以使用ValidationAware接口的其他方法(由ValidationAwareSupport類實現)獲得或設置字段錯誤信息、動作錯誤信息以及動作消息。如hasActionErrors方法判斷是否存在動作層的錯誤,getFieldErrors獲得字段錯誤信息(一個Map對象)。下面是ValidationAware接口提供的所有的方法:

  1. package com.opensymphony.xwork2;  
  2.  
  3. import java.util.Collection;  
  4. import java.util.Map;  
  5.  
  6. public interface ValidationAware  
  7. {  
  8.     void setActionErrors(Collection errorMessages);  
  9.     Collection getActionErrors();  
  10.  
  11.     void setActionMessages(Collection messages);  
  12.     Collection getActionMessages();  
  13.     void setFieldErrors(Map errorMap);  
  14.     Map getFieldErrors();  
  15.     void addActionError(String anErrorMessage);  
  16.     void addActionMessage(String aMessage);  
  17.     void addFieldError(String fieldName, String errorMessage);  
  18.     boolean hasActionErrors();  
  19.     boolean hasActionMessages();  
  20.     boolean hasErrors();  
  21.     boolean hasFieldErrors();  
  22. }  

【編輯推薦】

  1. Struts2教程:struts.xml常用配置解析
  2. Struts2教程:處理一個form多個submit
  3. Struts2教程:***個Struts2程序
  4. Struts2中POI在內存中生成文件并下載
  5. Struts2深入詳解properties配置文件
責任編輯:yangsai 來源: BlogJava
相關推薦

2009-02-04 12:00:08

2009-06-25 15:37:12

Struts2教程Validation框

2009-02-04 13:13:03

2011-03-30 09:03:57

struts2

2009-06-25 15:11:28

Struts2教程Struts2程序

2009-02-04 10:51:07

2009-06-03 14:19:34

Struts2Guice

2009-06-25 16:04:30

2009-06-05 10:17:34

struts vali驗證

2009-06-25 15:26:25

Struts2教程struts.xml常

2009-06-05 09:58:20

struts2驗證用戶注冊

2009-02-04 15:04:13

2009-06-25 15:50:03

Struts2教程上傳任意多個文件

2009-06-25 15:54:42

Struts2教程攔截器

2012-05-10 14:00:06

StrutsjsonJava

2009-02-04 11:37:15

2009-07-29 09:54:34

struts2和str

2009-06-04 09:20:19

struts2 if標使用

2009-02-04 14:00:59

2009-02-04 14:19:38

點贊
收藏

51CTO技術棧公眾號

av影院在线免费观看| 久久久久成人网站| 牛牛精品在线| 床上的激情91.| 欧美激情一级欧美精品| 国产清纯白嫩初高中在线观看性色| 欧洲性视频在线播放| 成人av网站大全| 人体精品一二三区| 人妻互换一区二区激情偷拍| av在线国产精品| 亚洲精品成人天堂一二三| 国产伦精品一区二区三区四区免费 | 国产熟女一区二区三区五月婷| 9999国产精品| 日韩精品在线电影| 午夜视频在线观| 性欧美1819sex性高清| 一区二区三区av电影| 日本一区二区三区免费观看| 成人小说亚洲一区二区三区| 免费成人美女在线观看| 国内免费久久久久久久久久久 | 一级特黄大欧美久久久| 日本电影一区二区三区| 欧美特级特黄aaaaaa在线看| 国内精品久久久久影院色| 日本sm极度另类视频| 久久网一区二区| 91久久久精品国产| 亚洲天堂开心观看| 日本japanese极品少妇| 欧美激情三级| 91精品婷婷国产综合久久竹菊| 日韩av播放器| 欧美三级网站| 亚洲国产成人porn| 日韩精品第1页| 在线观看完整版免费| 久久男人中文字幕资源站| http;//www.99re视频| 国产巨乳在线观看| 久久99精品久久久久久久久久久久 | 精品人妻一区二区免费视频| 国产午夜久久av| 91久久国产最好的精华液| 337p粉嫩大胆噜噜噜鲁| 国产剧情av在线播放| 最新高清无码专区| 中文字幕一区二区三区精彩视频 | 国产精品久久久久久久久久久久久久久久久久 | 久久久久亚洲精品国产| 国产人妻精品一区二区三区不卡| 国产日产一区| 亚洲人精选亚洲人成在线| 黄色正能量网站| 曰本一区二区三区视频| 国产视频久久网| 成年人在线观看av| 国模精品一区| 国产一区二区三区四区福利| 夫妇交换中文字幕| 欧美亚洲在线日韩| 在线日韩第一页| 三级黄色片在线观看| 99国产精品免费视频观看| www.国产精品一二区| 少妇人妻丰满做爰xxx| 欧美三区美女| 2019国产精品自在线拍国产不卡| 日韩精品一区二区av| av不卡免费看| 国产精品成人一区| 91精东传媒理伦片在线观看| 国产一区二区三区国产| 99热国产免费| 三级视频网站在线| 中文字幕电影一区| 大陆极品少妇内射aaaaaa| 欧美14一18处毛片| 岛国精品视频在线播放| 国产欧美高清在线| 日本一区二区中文字幕| 日韩欧美亚洲一区二区| 国产精品无码电影| blacked蜜桃精品一区| 久久天天躁狠狠躁夜夜av| 久久久久性色av无码一区二区| 亚洲专区在线| 国产一区二区香蕉| 视频一区 中文字幕| 欧美韩日一区二区三区| 超级碰在线观看| 亚洲黄色中文字幕| 欧美一区二区三区四区在线观看 | 一级久久久久久久| 国产成人免费av在线| 好看的日韩精品视频在线| av电影在线观看网址| 一区二区三区**美女毛片| 国产综合av在线| 欧美一区=区三区| 精品国产一区二区三区忘忧草| 亚洲第一成人网站| 亚洲欧美伊人| 国产精品精品久久久| 亚洲美女福利视频| 国产精品久久久久久久裸模 | 春色校园综合激情亚洲| 欧美日韩一区三区四区| 精品人妻一区二区三区日产| 99久久99热这里只有精品 | 久久久久久久久久免费视频| 看片的网站亚洲| 久久国产精品高清| 天使と恶魔の榨精在线播放| 欧美日韩一区二区三区免费看| 国产精品成人99一区无码 | 国产91在线视频观看| 电影91久久久| 永久免费精品影视网站| 国产 欧美 日韩 在线| 国产一区二区三区免费播放| 五月天婷亚洲天综合网鲁鲁鲁| bl在线肉h视频大尺度| 欧美精品粉嫩高潮一区二区| 91精品国自产在线| 一本色道久久综合| 成人羞羞视频免费| 巨大荫蒂视频欧美另类大| 日本精品一区二区三区四区的功能| 亚洲av无码专区在线播放中文| 国产精品7m凸凹视频分类| 国产97在线亚洲| 同心难改在线观看| 亚洲第一av色| 国产免费一区二区三区最新6| 久久精品影视| 国产区精品在线观看| 久久精品a一级国产免视看成人| 婷婷六月综合亚洲| 国产免费一区二区三区最新6| 影音先锋中文字幕一区二区| 亚洲一区二区三区sesese| 免费成人黄色| 欧美日韩国产bt| 久久一级免费视频| 麻豆91在线播放| 亚洲成色www久久网站| 国产精品videossex撒尿| 一区二区三区天堂av| 波多野结衣黄色| 中文一区二区在线观看| 亚洲欧美另类动漫| 日韩久久久久| 成人黄色大片在线免费观看| 成人在线播放免费观看| 日韩午夜激情视频| 免费一级全黄少妇性色生活片| 国产成人一区在线| 成人高清dvd| 国产精品极品在线观看| 午夜精品久久久久久99热| 午夜小视频在线播放| 色综合色狠狠综合色| jizz中文字幕| 激情小说亚洲一区| 美女黄色免费看| 欧美wwwsss9999| 国产脚交av在线一区二区| 亚洲欧美视频一区二区| 91精品国产入口在线| 久久精品视频6| 久久在线观看免费| 亚洲天堂2018av| 欧美福利在线| 久久伊人资源站| 国产91精品在线| 欧美巨乳美女视频| 午夜成人鲁丝片午夜精品| 色综合久久久网| 国产又色又爽又高潮免费| 国产精品99久久久久久宅男| 国产精品成人久久电影| 精品一区二区三区的国产在线观看| 国产在线观看一区二区三区| 国精一区二区三区| 国产小视频国产精品| a毛片在线免费观看| 欧美日韩国产专区| 久久精品色妇熟妇丰满人妻| 国产成人小视频| 日本久久精品一区二区| 欧美黄色一区| 欧美日韩国产综合视频在线| 精品欧美视频| 欧美一区第一页| gogogogo高清视频在线| 亚洲欧美在线一区| 精品国产99久久久久久宅男i| 福利一区视频在线观看| 婷婷社区五月天| 久久久久久久性| 在线观看你懂的视频| 日韩电影一二三区| 黄色一级片黄色| 91亚洲自偷观看高清| 精品欧美国产| 久久在线观看| 国产精品免费久久久| √天堂8资源中文在线| 日韩在线不卡视频| 国产永久av在线| 亚洲精品美女久久久久| 国产农村妇女毛片精品久久| 在线视频国产一区| 91看片在线播放| 一区二区三区四区在线免费观看| 欧美三级视频网站| 91欧美激情一区二区三区成人| 日韩视频在线观看一区二区三区| 首页国产欧美久久| 欧美日本视频在线观看| 欧美日本中文| 日本免费在线视频观看| 日韩在线理论| 日本成人黄色| 欧美精品第一区| 久久久久久九九九九| 高清日韩中文字幕| 91蜜桃网站免费观看| 国产欧美88| 成人两性免费视频| 99久久er| 国产精品视频久久久久| 欧美123区| 国产精品高潮呻吟视频| 欧美自拍电影| 国产aaa精品| 极品美女一区| 欧洲成人免费aa| 2022成人影院| 国产mv免费观看入口亚洲| 久久久久久久| 国产成+人+综合+亚洲欧美丁香花| 多野结衣av一区| 91精品国产精品| 麻豆免费版在线观看| 5252色成人免费视频| av资源新版天堂在线| 97色在线视频观看| 神马久久午夜| 日韩美女视频免费看| 成人自拍av| 国产精品欧美激情| 伊人久久大香| 成人欧美视频在线| 国内精品麻豆美女在线播放视频| 国产精品9999久久久久仙踪林 | 亚洲黄在线观看| 亚洲欧洲国产综合| 亚洲欧美国产另类| 91电影在线播放| 久久久av一区| 国产盗摄在线视频网站| 91精品国产乱码久久久久久久久| 樱桃视频成人在线观看| 国产精品av在线播放| 国产精品1区| 成人综合电影| 羞羞色国产精品网站| 午夜精品一区二区三区四区 | 国产精品日韩精品欧美在线| 91香蕉视频网| 亚洲国产一区在线观看| 少妇太紧太爽又黄又硬又爽| 在线欧美小视频| 国产特级aaaaaa大片| 亚洲国产精品一区二区三区| 久蕉依人在线视频| www.日韩av.com| av影院在线免费观看| 国产精品久久77777| 久久久久亚洲精品中文字幕| 久久精品magnetxturnbtih| av在线不卡顿| av在线观看地址| 日产国产欧美视频一区精品| 青青草原播放器| 26uuu亚洲综合色| 九九精品视频免费| 欧美色另类天堂2015| 91中文字幕在线视频| 亚洲精品第一页| 在线免费观看黄| 91chinesevideo永久地址| jizzyou欧美16| 国内精品**久久毛片app| 久久在线免费| 黄色影院一级片| 国产一区不卡在线| 人妻一区二区视频| 一个色妞综合视频在线观看| 国产男人搡女人免费视频| 精品女同一区二区| 在线观看美女网站大全免费| 性欧美视频videos6一9| 99精品女人在线观看免费视频 | 欧洲亚洲在线| 色与欲影视天天看综合网| 91福利精品在线观看| 国产精品亚洲一区| 久久综合国产| 50路60路老熟妇啪啪| av中文一区二区三区| 黄色a级片在线观看| 欧美性xxxxxxxx| 天堂a√在线| 欧美精品激情视频| 电影一区二区三区久久免费观看| 日韩中文一区| 国产精品一页| 毛茸茸free性熟hd| 一个色综合网站| 性中国古装videossex| 久久在线免费观看视频| 欧美成a人片免费观看久久五月天| 黑人中文字幕一区二区三区| 欧美视频四区| www.超碰97.com| 国产日韩在线不卡| 无码人妻精品一区二区50| 亚洲电影天堂av| 欧美激情成人动漫| 91网站在线免费观看| 亚洲va在线| 夜夜夜夜夜夜操| 亚洲人妖av一区二区| 亚洲中文字幕在线一区| 色狠狠av一区二区三区香蕉蜜桃| 天天综合网站| 午夜视频久久久| 日韩中文字幕不卡| 丝袜美腿中文字幕| 色偷偷88欧美精品久久久| 日韩精品视频在线观看一区二区三区| 欧美国产日韩一区二区三区| 午夜视频一区二区在线观看| 400部精品国偷自产在线观看| 久久99久久精品| 在线看的片片片免费| 欧美一区二区免费| 色呦呦在线播放| 国产日韩精品久久| 亚洲尤物精选| 免费视频91蜜桃| 欧美人与z0zoxxxx视频| 日韩欧美小视频| 99免费在线观看视频| 欧美日韩国产亚洲一区| 国产大学生视频| 欧美日韩国产丝袜另类| 男人的天堂av高清在线| 国产精品视频网站| 国产精品成久久久久| 精品国产鲁一鲁一区二区三区| 亚洲另类在线一区| 日批视频免费播放| 青青在线视频一区二区三区| 成人激情开心网| 杨幂一区二区国产精品| 亚洲 欧美综合在线网络| 手机亚洲第一页| 国产精品一香蕉国产线看观看| 五月精品视频| 尤物网站在线观看| 91精品福利在线| 色爱综合区网| 久久国产精品一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| www.99re7| 精品五月天久久| 欧美性www| 国产综合av在线| 国产精品激情偷乱一区二区∴| 国产高清第一页| 国产ts一区二区| 亚洲精品成人无限看| 国精产品一区一区三区免费视频| 欧美精品一二三| 在线观看涩涩| 亚洲一区 在线播放| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品久久久久久免费免熟| 9.1国产丝袜在线观看| 91嫩草亚洲精品| 国产美女喷水视频| 欧美成人一区二区三区在线观看| 日本免费久久| 亚洲色图都市激情|