精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产a级片免费观看| 999视频在线观看| 国产肥白大熟妇bbbb视频| 欧美精选视频一区二区| 国产精品久久久久永久免费观看| 亚洲自拍偷拍色图| 国产香蕉视频在线| 久久国产电影| 亚洲第一区在线观看| 青青青在线播放| 国产激情在线视频| 91蝌蚪porny九色| 成人激情视频在线播放| 日韩av无码中文字幕| 欧美一站二站| 亚洲高清av在线| 日本中文字幕高清| 55av亚洲| 一区二区三区蜜桃| 午夜精品福利一区二区| 秋霞网一区二区| 久久99精品久久久久婷婷| 91精品国产91久久久久久| chinese全程对白| 色综合www| 日韩精品在线看片z| 99热手机在线| 漫画在线观看av| 亚洲精品va在线观看| 欧洲高清一区二区| 亚洲经典一区二区| 狠狠色丁香婷综合久久| 国产成人jvid在线播放| 91av在线免费视频| 欧美一区二区三区久久精品| 亚洲天堂开心观看| xxxxxx黄色| 清纯唯美激情亚洲| 欧美日韩精品欧美日韩精品一| 91专区在线观看| 欧美家庭影院| 亚洲精品菠萝久久久久久久| 亚洲欧洲国产日韩精品| 精品久久av| 91亚洲资源网| 国产一区二区三区高清视频| 99热这里只有精品66| 免费观看成人av| 国产成人一区二区在线| 国产精品国产三级国产专区52| 红桃视频国产精品| 欧美激情免费在线| 欧美日韩精品在线观看视频| 国产大片一区| 久久久999精品免费| 制服丨自拍丨欧美丨动漫丨| 精品大片一区二区| 在线国产精品播放| 538精品视频| 清纯唯美日韩| 久久精品免费电影| 深夜福利影院在线观看| 欧美激情精品久久久六区热门| 成年无码av片在线| 免费一级肉体全黄毛片| 红桃视频亚洲| 4444欧美成人kkkk| 久久久蜜桃一区二区| 日本美女一区二区| 成人av在线亚洲| 99re只有精品| 三级男人添奶爽爽爽视频| av综合电影网站| 在线精品国精品国产尤物884a| 一本久道综合色婷婷五月| 欧美韩国亚洲| 欧美精品电影在线播放| 99999精品| 国产精品久久久网站| 精品亚洲国产视频| 我想看黄色大片| 欧美一区二区三区久久精品| 久久久欧美精品| 欧美精品一二三四区| 视频一区二区欧美| 国产一区二区丝袜高跟鞋图片| 国产精品久久777777换脸| 国产高清在线精品| 久久久综合香蕉尹人综合网| 成年午夜在线| 一区二区三区在线视频免费观看| 九九爱精品视频| av官网在线播放| 欧美视频在线观看免费| 天天干天天干天天干天天干天天干| 欧洲亚洲精品久久久久| 亚洲成人在线视频播放| 亚洲天堂岛国片| 欧美精品播放| 国产成人涩涩涩视频在线观看| 国产精品人人妻人人爽| kk眼镜猥琐国模调教系列一区二区| 日韩成人av网站| 欧美videos另类精品| 色综合久久中文综合久久牛| 一级片免费在线观看视频| 妖精一区二区三区精品视频| 久久久国产精品x99av| 国产无人区码熟妇毛片多| 久久国产日韩欧美精品| 精品蜜桃一区二区三区| 久久久久久国产精品免费无遮挡| 精品二区三区线观看| 手机av在线免费| 亚洲欧美校园春色| 欧美精品videosex牲欧美| 中文在线免费观看| av中文一区二区三区| 国产一二三四五| 新片速递亚洲合集欧美合集| 精品少妇一区二区三区免费观看| 一区二区三区伦理片| 亚洲人成久久| 亚洲va欧美va国产综合剧情| 久久久久久久久亚洲精品| 亚洲精品高清在线| 亚洲久久中文字幕| 久久99国产成人小视频| 久久久久久久亚洲精品| 国产不卡精品视频| 国产精品对白交换视频| 成年人网站大全| 任你弄精品视频免费观看| 色综合久久久久久中文网| 影音先锋黄色网址| 久久久99精品免费观看| 18禁免费观看网站| 成人搞黄视频| 色综合久久久久久中文网| 国产一区二区三区黄片| 国产精品美女久久久久久久久| 99福利在线观看| 欧美巨大xxxx| 久久久久久久久91| 国模私拍视频在线| 亚洲国产另类av| 日本泡妞xxxx免费视频软件| 亚洲综合五月| 成人午夜小视频| 免费在线观看黄色| 欧美精品自拍偷拍| 国产一二三区精品| 国产毛片精品视频| 欧美交换配乱吟粗大25p| 韩国三级成人在线| 欧美人成在线视频| 亚洲国产精品国自产拍久久| 亚洲精品成a人| 国产伦精品一区三区精东| 精品福利电影| 久久国产精品亚洲va麻豆| 国产在线88av| 亚洲男人天堂2019| 在线免费黄色av| 国产欧美精品一区aⅴ影院 | 图片区小说区国产精品视频 | 久久丝袜美腿综合| 国产无套内射久久久国产| 国产日产精品_国产精品毛片| 日韩免费观看在线观看| 91在线视频免费看| 欧美日韩aaaaa| 欧美久久久久久久久久久久| 不卡欧美aaaaa| av免费中文字幕| 成人av国产| 51精品国产人成在线观看| 日本三级韩国三级欧美三级| 日韩av最新在线| 一级片在线免费播放| 亚洲欧美另类在线| 成年人小视频在线观看| 久久精品麻豆| 日本特级黄色大片| 噜噜噜天天躁狠狠躁夜夜精品| 欧美综合激情网| 免费网站免费进入在线| 精品久久久久久亚洲综合网| 青青视频在线免费观看| 亚洲欧美在线视频观看| 亚洲色图欧美日韩| 秋霞午夜鲁丝一区二区老狼| 欧美视频在线第一页| 亚洲日本三级| 91美女片黄在线观| 亚洲天堂资源| 另类美女黄大片| 免费在线稳定资源站| 欧美一级片免费看| 亚洲国产精品无码久久久| 亚洲精品精品亚洲| 色无极影院亚洲| 国产成人综合亚洲网站| 免费国产成人av| 欧美日韩国产色综合一二三四| 欧美不卡三区| 欧美一区一区| 国产成人小视频在线观看| 先锋成人av| 色七七影院综合| 日本不卡免费播放| 精品美女在线观看| 亚洲天堂aaa| 色综合一区二区| 久久精品国产亚洲av高清色欲| 亚洲国产精品激情在线观看| 黄色污在线观看| 国产一区二区中文字幕| 国产熟人av一二三区| 亚洲毛片一区| 成人免费看片'免费看| 日本一区二区高清不卡| 女同一区二区| 欧美在线导航| 成人18视频| 国产精品1区| 国产精品天天狠天天看| 午夜精品久久久久久久久久蜜桃| 97精品免费视频| 欧美videosex性欧美黑吊| www.日韩欧美| xxxxx日韩| 亚洲欧美国产精品久久久久久久 | www.国产com| 亚洲福利一二三区| 黄色一级视频在线观看| 日韩一区在线看| 中国1级黄色片| 国产女主播在线一区二区| 久久精品视频18| 久久久久久久综合色一本| 艳妇乳肉豪妇荡乳xxx| 成人的网站免费观看| 国产精品日日摸夜夜爽| 国产精品888| 韩国三级hd中文字幕有哪些| 国产资源精品在线观看| 红桃视频 国产| 国产在线播放一区三区四| 色啦啦av综合| 狠狠色综合播放一区二区| 91精品视频国产| 国产专区综合网| 伊人久久久久久久久| 国产精品一区免费在线观看| xxxx国产视频| 成人免费视频国产在线观看| 特级特黄刘亦菲aaa级| 不卡av在线免费观看| xfplay5566色资源网站| 91久色porny| 精品一区二区三区蜜桃在线| 中文字幕高清不卡| 亚洲女人久久久| 一区二区三区欧美视频| 久久精品国产亚洲av麻豆色欲| 黄色一区二区在线观看| 亚洲欧美一区二区三区在线观看| 91精品福利在线| 一级黄色片在线观看| 日韩欧美一二三| 五月婷婷六月色| 亚洲最大在线视频| av观看在线| 欧美影院久久久| 国产一区一一区高清不卡| 成人国产精品免费视频| ccyy激情综合| 蜜桃导航-精品导航| 日韩欧美二区| bt天堂新版中文在线地址| 99精品热6080yy久久| 色播五月综合网| 国产69精品久久久久毛片| 性久久久久久久久久| 国产精品久久久久9999吃药| 精品爆乳一区二区三区无码av| 岛国精品视频在线播放| 中文字幕在线日亚洲9| 精品日韩成人av| 黄色毛片在线看| 欧美成人午夜影院| 色黄视频在线观看| 成人亚洲激情网| 女仆av观看一区| 一卡二卡3卡四卡高清精品视频| 中文字幕一区二区精品区| 免费日韩中文字幕| 国产精品18久久久久久久网站| 成人午夜剧场视频网站| 亚洲欧美日韩久久精品| 日韩美一区二区| 日韩免费性生活视频播放| 国产永久免费高清在线观看视频| 欧美成人免费播放| 欧亚一区二区| 极品日韩久久| 欧美一区91| 色噜噜狠狠一区二区| 91视频www| 免费网站观看www在线观| 欧美无砖砖区免费| 天天摸夜夜添狠狠添婷婷| 久久精品亚洲94久久精品| 三上悠亚激情av一区二区三区| av在线不卡一区| 日韩一级毛片| 无码无遮挡又大又爽又黄的视频| 国产91精品在线观看| 四虎影院中文字幕| 欧美在线视频你懂得| 天堂中文字幕在线| 久久久免费在线观看| 日韩精品一区国产| 青少年xxxxx性开放hg| 日韩电影在线一区二区| 久久精品综合视频| 亚洲一区二区欧美激情| av天堂一区二区三区| 日韩在线观看高清| 日本精品裸体写真集在线观看| 久久精品日产第一区二区三区乱码| 欧美日韩精品一本二本三本 | 99久久777色| 国产无遮挡aaa片爽爽| 91麻豆精品国产91久久久资源速度 | 亚洲а∨天堂久久精品喷水| 黄色av电影在线播放| 国产欧美婷婷中文| 欧美在线色图| 九一精品在线观看| 国产精品午夜在线观看| 加勒比在线一区| 亚洲免费视频观看| 亚洲欧洲日本韩国| 欧美精品一区二区三区在线看午夜| 亚洲成人直播| 亚洲一区二区三区四区五区六区| 亚洲一区二区欧美| 婷婷在线免费视频| 欧美一级免费视频| 制服丝袜日韩| 国产高潮免费视频| 国产精品萝li| 国产免费叼嘿网站免费| 久久这里只有精品视频首页| 久久爱www.| 国产视频在线观看网站| 成人国产视频在线观看| 国产第一页第二页| 亚洲精品国产电影| 欧美无毛视频| 伊人久久婷婷色综合98网| 精品一区二区免费视频| 欧美三级 欧美一级| 亚洲成人中文字幕| 三级成人在线| 在线日韩av永久免费观看| 国产乱码精品一品二品| 日本熟妇一区二区| 亚洲欧美在线一区二区| 欧美美女福利视频| 日本a级片在线播放| 99国产一区二区三精品乱码| 亚洲国产成人精品女人久久| 中国china体内裑精亚洲片| gogo大尺度成人免费视频| 欧美日韩视频免费| 久久综合成人精品亚洲另类欧美| 亚洲无码精品一区二区三区| 久久精品亚洲一区| 里番精品3d一二三区| 538任你躁在线精品免费| 一区二区三区在线免费| 色资源在线观看| 成人国产在线视频| 国产欧美日韩一区二区三区在线| 一区二区三区伦理片| 日韩欧美一二三区| 日韩一级二级| 又大又硬又爽免费视频| 国产无一区二区| www.成人免费视频| 国产精品99久久久久久白浆小说 | 久久久久99精品久久久久| 精品视频高潮| 日韩成人av免费| 日韩欧美在线字幕| 在线播放蜜桃麻豆| 亚洲第一在线综合在线|