欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

基于AJAX技術實現Struts校驗框架_AJAX教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:使用 JavaScript 和 Ajax 發出異步請求
多數 Web 應用程序都使用請求/響應模型從服務器上獲得完整的 HTML 頁面。常常是點擊一個按鈕,等待服務器響應,再點擊另一個按鈕,然后再等待,這樣一個反復的過程。有了 Ajax 和 XMLHttpRequest 對象,就可以使用不必讓用戶等待服務器響應的請求/響應模型了

提要 實時的數據校驗是AJAX技術的重要優點之一,Struts校驗框架通過加入這種技術進一步豐富了其MVC,從而使得Web應用程序的開發效果更接近于桌面應用程序。

  一、 引言

  校驗框架的根本目的是實現域校驗。在Web應用程序中有許多方法可以實現域校驗,總體上可以分為兩類:服務器端和客戶端。其中,Struts校驗框架是適合于基于Java的Web應用程序環境最好的框架之一。它可以使用服務器端校驗來配置應用程序并且使用在校驗過程(在請求處理期間激活)中生成的錯誤消息;而且它也可以通過在請求頁面上生成的JavaScript來實現客戶端校驗。

  AJAX是一種能異步地調用服務器并返回XML文檔的技術,近來十分流行。它的重要優點之一是能夠實現數據的實時校驗。

  本文將主要探討如何使用AJAX技術進一步增強現有Struts校驗框架的功能。為此,我們必須開發幾個組件來實現選擇校驗框架并且為客戶端生成指定格式的消息,還要開發一個處理錯誤消息生成的標簽庫。

  二、 前提

  你需要使用Windows操作系統,并安裝Eclipse集成開發環境和Tomcat應用程序服務器,還要確保在你的操作系統上已經注冊了MSXML 3.0 ActiveX對象。另外,你還需要Struts庫(http://struts.apache.org)和JDOM庫(www.jdom.org,用于XML開發),請分別參考下面的圖1和圖2。


圖1.AjaxForm類層次圖


圖2.ErrormessageHandler類層次圖

  三、 服務器端

  StrustsActionServlet

  首先,我們必須用這個類擴展org.apache.struts.action.ActionServlet類以創建一個servletMapping變量,并用此變量來存儲有關瀏覽器地址的action路徑的信息。當添加代碼時,我們必須把web.xml配置為一個用于應用程序服務器的Web應用程序描述器。

  web.xml的配置如下:

...
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>net.sf.struts.servlet.StrutsActionServlet</servlet-class>
...
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
...

  相應的StrutsActionServlet代碼看上去具有如下形式:

public class StrutsActionServlet extends the ActionServlet.
{
public String getServletMapping() {
return this.servletMapping;
}
}

  AjaxValidationRequestProcessor

  為了支持現有的Struts框架,我們必須擴展Struts包中的RequestProcessor類。為此,我們必須定制請求處理器,其一是因為我們必須區分怎樣實現校驗-使用現有的Struts框架還是使用基于AJAX的方案;其二是因為我們將在服務器和客戶端之間在有關如何攔截消息方面簽訂一種協約。在消息生成過程中,我們使用的是XML格式-這是一種很好的媒體消息發送格式。我們所使用的XML格式的定義如下:

  XML Format

<?xml version="1.0" encoding="UTF-8"?>
<message>
<identity name=messageAreaId>
<description>
MessageValue
</description>
</identity>
</message>

  描述

  · Identity是客戶端JavaScript的ID,用于指明消息應該放置的位置。

  · Description是服務器端生成錯誤消息以后的結果。

  首先,在處理映射前,我們需要從Web描述符中得到servlet映射配置信息。激活該過程后,應用程序就著手準備繼承自AjaxForm類的表單實例。接下來的處理將管理AJAX校驗并且應該進行檢查以確保來自客戶端的請求沒有使用Struts校驗框架。在請求期間另外要實現,其一是處理收集的由客戶端發送到action表單的信息的填充問題;其二是通過使用已經存在于父類AjaxValidationRequestProcessor(TilesRequestProcessor)中的現有Struts校驗框架中的方法來處理校驗問題。

  TilesRequestProcessor中的校驗過程將調用所有基于Struts校驗框架的校驗并且把action錯誤保存到請求中。我們需要把action錯誤分析成片斷并生成將被發送到客戶端的XML消息校驗。既然我們想改變校驗方式,那么在校驗過程中,我們應該檢查我們使用的是哪一種校驗框架(見圖3)。


圖3.控制器處理流程

  在此,我們把JDOM作為處理引擎并使用它生成XML消息。如圖4所示,當開始校驗并且所用校驗框架是AJAX校驗框架時,接下來要進行填充錯誤消息并且構建XML消息校驗。


圖4.過濾和XML校驗生成過程

  ErrorMessageHandler

  這個類具有XML消息構建器的功能,它基于identity和description屬性來構建XML消息。在調用buildXMLMessage后,調用者就會準備文檔并設置XML消息的根元素。這個類還有一個addNextXMLMessage函數,這個函數負責把其它校驗消息添加進XML(見源代碼中的列表1)。
AjaxValidationRequestProcessor類中的process方法負責把響應的content type設置為"text/xml"并且以字符串形式發送XML消息。該方法的代碼如列表2(見所附源碼)所示。

  AjaxValidationRequestProcessor類中的processValidation方法負責填充action錯誤并且基于XML格式約定為客戶端構建消息。此函數的代碼如下所示:

...
ActionErrors errors = (ActionErrors) request.getAttribute(Globals.ERROR_KEY);
Locale locale = (Locale) request.getAttribute(Globals.LOCALE_KEY);
generateXMLMessage(errors, identity, locale, sbXMLMessage);
...
  四、 客戶端

  構建Taglib組件

  · AjaxJavaScriptLibraryTag:該taglib組件負責生成客戶端基本的XMLHTTP控制器函數的JavaScript函數部分。

  · AjaxErrorHtmlRenderTag:該taglib組件負責在JSP頁面上生成顯示錯誤消息的區域。

  配置Taglib定義

  在開發完taglib組件后,我們需要使用如列表3(見所附源碼)的方式來配置taglib的tld文件。

  五、 構建JSP和Struts配置

  為了模仿校驗處理的結果,我們首先需要構建描述層-這可以通過加入我們已經構建的taglib來實現。在本文實例中,我將盡力使用Struts提供的校驗規則組件和表單本身的校驗功能來給出一個校驗的實例。現在,我們在JSP頁面中準備5個文本框。第一到第四個文本框使用校驗規則配置,第5個文本框使用來自action表單的校驗過程。此外,我們還需要一個提交按鈕來實現提交表單后對此的模仿。注意,至此,現有的Struts校驗仍然沒有使用AJAX。用戶接口如圖5所示。


圖5.JSP校驗頁面

  六、 構建Action和Action表單

  對于Struts action,我們只需把它轉發到我們已經構建的JSP即可,相應的action代碼具有如下類似形式:

public ActionForward execute(...) {
return mapping.findForward("success");
}

  如果輸入為空,那么Action表單代碼就對requiredText屬性進行校驗。記住,要從AjaxForm類中派生此表單類。此Action表單的validate方法看上去如下:

public ActionErrors validate(...) {
ActionErrors errors = new ActionErrors();
if (StringUtils.isEmpty(this.requiredText)) {
errors.add("requiredText", new ActionError("error.required.input"));
}
request.setAttribute(Globals.ERROR_KEY, errors);
}

  七、 應用Struts校驗規則

  接下來要配置Struts校驗規則,例如最小長度,最大長度,電子郵件和模式文本,等等。然后,把這些數據應用于客戶端的輸入對象。這一部分相應的配置類見列表4(詳見所附源碼)。

  八、 校驗處理流程

  首先,客戶端初始化XMLHTTP組件以實現對服務器的請求。然后,一旦開始構建用戶激活的事件,URL的參數就被發送給服務器。在結束構建參數后,客戶端將依附oneadystatechange XMLHTTP事件來聽取(listen)來自服務器端的響應。在接收響應后,客戶端開始分析XML校驗消息并且把該消息存放到適當的地方(見圖6)。


圖6.客戶端處理流程

  當服務器接收請求時,它就開始檢查AJAX校驗的參數并且進行校驗。一旦完成校驗,生成的對象就被過濾到與用戶輸入對象相聯系的特定的錯誤中。在過濾操作完成后,即刻生成XML消息并把該消息發送回客戶端(見圖7)。


圖7.服務器端處理流程

  九、 總結

  在本文中,我們構建了一個控制器,它能夠接收來自客戶端的異步請求并且加入Struts校驗過程來生成action錯誤對象。在生成錯誤對象和XML消息(見圖8和圖9)之后,對于即將被校驗的特定輸入對象的過濾操作立即執行。


圖8.在Struts校驗框架內使用AJAX實現應用程序校驗測試


圖9.Struts校驗框架用例
 

分享:談Ajax 中的高級請求和響應
對于很多 Web 開發人員來說,只需要生成簡單的請求并接收簡單的響應即可;但是對于希望掌握 Ajax 的開發人員來說,必須要全面理解 HTTP 狀態代碼、就緒狀態和 XMLHttpRequest 對象。在本文中,Brett McLaughlin 將向您介紹各種狀態代碼,并展示瀏覽器如何對

來源:模板無憂//所屬分類:AJAX教程/更新時間:2010-04-19
相關AJAX教程
国产欧美一区| 国产一级生活片| 欧美高清xxx| 韩国毛片一区二区三区| 日韩欧美资源站| 国产精品乱码| 熟女少妇一区二区三区| 欧美亚洲黄色| 成人小视频在线观看| 日韩电影免费观看中文字幕| 日本不卡一区二区三区在线观看| 性欧美一区二区| 欧美高清hd| 99re在线精品| 久久精品国产成人| 好吊妞无缓冲视频观看| 日批视频免费观看| 欧美三级第一页| 在线视频你懂得一区二区三区| 成人h片在线播放免费网站| 老熟女高潮一区二区三区| 日本精品不卡| 国产成人在线色| 伊人激情综合网| 黄色特一级视频| 欧美另类高清videos的特点| 欧美国产91| 欧美午夜视频网站| 高清视频一区| 午夜三级在线观看| 国产日产一区| 午夜日韩在线电影| 国产精品视频网站| 最新在线黄色网址| 亚洲成av人片在线观看www| 国产日韩精品一区二区三区| 久久久久久免费精品| 邪恶网站在线观看| 成人美女黄网站| www..com久久爱| 欧美日韩999| 在线能看的av网站| 日本精品网站| 国产日韩欧美a| 欧美整片在线观看| 图片区偷拍区小说区| 国产麻豆精品| 最新欧美精品一区二区三区| 国产精品久久久久久av福利| 精品1卡二卡三卡四卡老狼| 麻豆一区在线| 国产精品国产三级国产| 国产精品aaa| 一级性生活大片| 亚洲传媒在线| 午夜精品一区二区三区电影天堂| 91福利视频导航| 欧美视频www| 综合久久亚洲| 日韩一区二区免费在线电影| 一区二区三区四区免费观看| 一级黄色a视频| 精品一区中文字幕| 麻豆国产精品va在线观看不卡 | 国产在线青青草| 六月婷婷综合网| 成人免费毛片app| 国内精品国产三级国产在线专| 蜜臀av粉嫩av懂色av| 国产一区在线电影| 天天爽夜夜爽夜夜爽精品视频| 国产成人精品自拍| 日本在线观看中文字幕| av成人激情| 亚洲欧美日韩久久久久久| 日韩视频在线免费看| 国产精品极品美女在线观看| 国产清纯白嫩初高生在线观看91| 国产成人短视频| 国产精品suv一区二区88| 影音先锋成人在线电影| 精品久久久久久久久久久久包黑料 | 美国三级日本三级久久99| 最近2019好看的中文字幕免费| 欧美男女交配视频| av成人男女| 欧美日韩一区二区三区在线免费观看 | 亚洲一级片网站| 日韩精品一级| 欧美日韩人人澡狠狠躁视频| 欧美亚州在线观看| 91精品视频免费在线观看| 国产成人av电影在线| 国内揄拍国内精品少妇国语| 久久国产精品影院| 99久久国产综合精品成人影院| 欧美一区二区免费观在线| 天天夜碰日日摸日日澡性色av| 国产精品专区免费| 亚洲丝袜美腿综合| 精品中文字幕一区| 国产精品呻吟久久| 91香蕉国产在线观看软件| 国产成人91久久精品| 天天综合天天做| 亚洲欧美日韩国产一区| 中文字幕在线成人| 男男一级淫片免费播放| 残酷重口调教一区二区| 日韩精品一区二区三区三区免费 | 天堂网av在线播放| 国产精品高潮呻吟| 国产精品制服诱惑| 91女人18毛片水多国产| 99久久99精品久久久久久 | 国产一区二区在线网站| 中文字幕在线播出| 91美女蜜桃在线| 成人美女免费网站视频| 天堂中文在线网| 国产成人午夜精品影院观看视频 | 久久久成人精品| www.色天使| 国产精品99免费看| xvideos成人免费中文版| 无码一区二区精品| 欧美韩国一区| 在线中文字幕日韩| 国产制服丝袜在线| 在线精品福利| 美女av一区二区| 99在线视频免费| 久久一区精品| 欧美亚洲另类激情另类| 国产亚洲小视频| 国产麻豆精品在线观看| 国产精品久久久久久久美男| 日韩久久久久久久久| 国产成人在线视频播放| 亚洲影院高清在线| 亚洲影视一区二区| 国产精品福利影院| 亚洲高清视频在线观看| 成人看片网页| 色狠狠综合天天综合综合| 男人和女人啪啪网站| 97青娱国产盛宴精品视频| 欧美一区二区三区小说| 亚洲一区精品视频在线观看| 日韩精品永久网址| 正在播放欧美一区| 亚洲黄色网址大全| 奇米精品一区二区三区四区| 日本一区二区不卡| 日韩一级在线视频| 国产日韩精品一区二区三区| 欧洲精品亚洲精品| 精品视频一区二区三区四区五区| 色网站国产精品| 久久午夜夜伦鲁鲁一区二区| 久久91麻豆精品一区| 亚洲男人天堂2023| 精品无码国产污污污免费网站 | 成人免费在线网址| 国产区精品在线| 一区二区三区**美女毛片| 污污污污污污www网站免费| 成人爽a毛片| 精品久久国产老人久久综合| 国产艳妇疯狂做爰视频| 亚洲永久视频| 国产精品视频久久| 精品国产无码一区二区三区| 亚洲成人手机在线| 国产综合免费视频| 久久人体视频| 欧美成人免费观看| 久久精品免费av| 久久久精品国产免大香伊| 色999日韩自偷自拍美女| 91精品一久久香蕉国产线看观看 | 日韩久久中文字幕| 国产精品毛片大码女人| 喜爱夜蒲2在线| 久久亚州av| 永久免费精品影视网站| 国产喷水在线观看| 成人av网站在线观看| 欧美一区二区三区电影在线观看 | 美女网站一区二区| 99在线高清视频在线播放| 日本精品久久久久久| 色先锋资源久久综合| 97超碰人人看| 久久高清免费观看| 国产精品自产拍在线观看中文| 国产av无码专区亚洲av| 欧美日韩在线影院| 中文字幕av不卡在线| 黑人一区二区| 国产女精品视频网站免费| 国 产 黄 色 大 片| 在线亚洲欧美专区二区| 欧美高清精品一区二区| 亚洲永久字幕| 99九九电视剧免费观看| 欧美性片在线观看| 亚洲精品一区二区在线观看| 美国黄色特级片| 99精品国产视频| 一本色道久久综合亚洲精品婷婷 | 色乱码一区二区三区熟女| 欧美jizz19性欧美| 久久夜精品香蕉| 天堂网视频在线| 亚洲成人动漫av| 色婷婷综合在线观看| 日本va欧美va欧美va精品| 国产91亚洲精品一区二区三区| 亚洲不卡系列| 日韩经典一区二区三区| 国产精品九九九九九九| 国产精品免费丝袜| 人妻有码中文字幕| 1024成人| 91综合免费在线| 国产精品久久久久久吹潮| 日韩av一区二区在线观看| 希岛爱理中文字幕| 国产精品久久久久久久久免费樱桃 | www.日韩视频| 久久久久精彩视频| 日韩欧美成人区| 污片免费在线观看| 成人综合婷婷国产精品久久| 中文字幕精品—区二区日日骚| 九色精品国产蝌蚪| 欧日韩不卡在线视频| 人妻无码中文字幕免费视频蜜桃| 日韩欧美在线一区二区三区| 人妻无码一区二区三区免费| 久久精品夜色噜噜亚洲aⅴ| 成人免费毛片在线观看| 欧美三级乱码| 欧美日本国产一区| 成人国产精品一区二区| 99久久综合国产精品二区| 亚洲久久久久久久久久| 欧美一区二区激情视频| 五月天亚洲精品| 中文文字幕文字幕高清| 99久久久久久99| 日本欧美黄色片| 国产精品婷婷| 欧美1o一11sex性hdhd| 一区二区三区视频免费观看| 欧美在线视频免费观看| 欧美xoxoxo| 亚洲视频欧美视频| 日本成人一级片| 精品视频一区二区不卡| 免费看一级黄色| 亚洲视频精选在线| 中文字幕一二三| 成人黄色国产精品网站大全在线免费观看 | 91福利精品在线观看| 在线日韩精品视频| 在线播放精品视频| 亚洲高清在线视频| 在线观看日韩精品视频| 国产午夜精品一区二区三区视频| 超碰影院在线观看| 麻豆91精品91久久久的内涵| 熟女视频一区二区三区| 国产精品多人| 久久大香伊蕉在人线观看热2| 国产成人高清| 成人精品福利视频| 91综合久久爱com| 国产69久久精品成人| 久久久加勒比| 欧美福利小视频| 亚洲黄色免费av| 中文字幕欧美日韩精品| av观看在线免费| 在线成人av观看| 欧美成人激情免费网| 亚洲免费激情视频| 欧美日韩亚洲综合在线| 国产精品 欧美激情| 黑人精品xxx一区| 91免费在线看片| 亚洲国产一区视频| 亚洲图片另类小说| 亚洲综合免费观看高清完整版在线| 欧美无人区码suv| 亚洲人午夜精品天堂一二香蕉| 秘密基地免费观看完整版中文 | 男插女免费视频| 一本色道久久综合亚洲精品高清| 日本一区二区在线视频| 欧美日韩精品一本二本三本| 久久人人爽爽人人爽人人片av| 97精品国产| 久久影院理伦片| 欧美国产专区| 夜夜爽99久久国产综合精品女不卡 | 久久久精品亚洲| a日韩av网址| 色综合视频网站| 成人黄色毛片| 91国产高清在线| 天堂va在线高清一区| 国产精品91免费在线| 成人在线tv视频| 成人黄色大片在线免费观看| 亚洲最好看的视频| av成人午夜| 香蕉国产精品| 亚洲人久久久| 久久国产直播| av免费观看大全| 国产成人精品在线看| 91精产国品一二三产区别沈先生| 久久久久国产精品麻豆| 熟妇高潮一区二区| 一区二区三区不卡视频| 国产午夜精品理论片在线| 在线视频你懂得一区| 51国产偷自视频区视频| 亚洲第一视频在线观看| 国内精品偷拍视频| 久久精品视频在线| 色999韩欧美国产综合俺来也| 国产精品高清免费在线观看| 亚洲影院天堂中文av色| 久久一区免费| 久久aⅴ国产紧身牛仔裤| 国产视频一视频二| www.亚洲精品| 亚洲av成人片无码| 亚洲二区视频在线| 精品无码m3u8在线观看| 欧美xxxx老人做受| 99热这里只有精品5| 久久伊人精品一区二区三区| 日韩城人网站| 成人免费大片黄在线播放| 久久福利影院| 国产精品av免费| 国产一区欧美一区| 日韩高清在线一区二区| 亚洲欧美激情在线| 男人操女人的视频网站| 日韩一区二区三区精品视频| 国产老妇伦国产熟女老妇视频| 久久精品亚洲热| 日韩高清在线观看一区二区| 亚洲精品女av网站| 国产伊人精品| 夜夜添无码一区二区三区| 不卡一区二区三区四区| 污片免费在线观看| 91久久一区二区| 中文字幕在线播放日韩| 日韩中文字幕不卡视频| 高清久久一区| 成人在线资源网址| 99人久久精品视频最新地址| 日韩精品―中文字幕| 久久青草欧美一区二区三区| 中文字幕第4页| 欧美蜜桃一区二区三区| 性欧美18一19性猛交| 欧美亚洲激情视频| 久久人人99| 日本男女交配视频| wwwwww.欧美系列| 国产精品av久久久久久无| 制服丝袜亚洲色图| 日韩一级片免费看| 国产精品久久久久久久久久三级| 97精品一区二区| 国产免费黄色一级片| 国产欧美日产一区| 1024手机在线视频| 亚洲男人天堂网| 二区三区精品| 精品999在线观看| 激情综合网激情| 亚洲色偷偷色噜噜狠狠99网| 在线观看日产精品| 国产黄色av片| 国产不卡精品视男人的天堂| 1024精品久久久久久久久| 亚洲熟妇无码一区二区三区| 国产欧美日韩激情| 日本在线视频免费观看| 中文字幕亚洲一区| 另类尿喷潮videofree|