即時資料驗證是AJAX技術的一大優勢之一。通過應用此技術,struts驗證架構將增強struts MVC,並使Web應用程式更接近於傳統型應用程式。
此驗證架構用於驗證欄位。有許多在Web應用程式上進行驗證的方法。這些方法可分為兩類:伺服器端方法和用戶端方法。Struts驗證架構是面向基於Java的Web應用環境的最佳架構之一。它能夠配置應用程式,方法是使用伺服器端驗證和錯誤訊息,此錯誤訊息在處理請求時呈現在調用的驗證流程上,它還能夠進行用戶端驗證,方法是使用請求頁面上呈現的JavaScript。
AJAX是一種JavaScript技術,它能夠非同步呼叫伺服器並擷取XML文檔,這類文檔最近非常流行。其用途之一就是即時資料驗證。
本文關注使用AJAX增強現有struts驗證架構。必須開發幾個組件(例如控制器),以選擇驗證架構,並呈現特定格式的訊息(用於用戶端)和標籤庫(處理錯誤訊息呈現)。
必要條件
需要一個具有Eclipse和Tomcat應用伺服器的Windows系統。請確定已在作業系統中註冊了MSXML 3.0 ActiveX對象。還需要Struts庫(http://struts.apache.org)和JDOM庫(www.jdom.org),以用於XML開發(參見圖1和圖2)。
伺服器端情境StrustsActionServlet
我們必須擴充來自org.apache.struts.action.ActionServlet的類,以獲得servletMapping變數,此變數儲存關於如何針對動作類將該擴充格式化為瀏覽器地址形式的移動路徑的資訊。當添加代碼時,我們必須將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 Java代碼如下:
public class StrutsActionServlet extends the ActionServlet.
{
public String getServletMapping() {
return this.servletMapping;
}
}
AjaxValidationRequestProcessor