struts2內置對ajax支持。。所以可以很方便的應用中使用ajax,struts2是基于了dwr 和dojo的。。我現在用的struts2.0.11只支持到dwr 1.1.2。還不支持2.05版本。。。下面在上篇blog基礎上使用ajax進行驗證.
1.配置dwr的核心servlet,修改web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


    
<!-- 定義Struts2的FilterDispathcer的Filter -->
    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    
</filter>

    
<!-- FilterDispatcher用來初始化struts2并且處理所有的WEB請求。 -->
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
<servlet>
    
<servlet-name>dwr</servlet-name>
        
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
        
<init-param>
           
<param-name>debug</param-name>
           
<param-value>true</param-value>
        
</init-param>
    
</servlet>

    
<servlet-mapping>
        
<servlet-name>dwr</servlet-name>
        
<url-pattern>/dwr/*</url-pattern>
    
</servlet-mapping>

</web-app>
2.在需要驗證的頁面設置ajax主題,register.jsp頁:注意有兩個地方要設置,特別注意<s:form>要設置
<%@ page contentType="text/html; charset=GBK" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>register</title>
<s:head theme="ajax"/>
</head>
<body>
<s:form action="regist" validate="true" theme="ajax">
<s:textfield name="username" label="用戶名"/>
<s:textfield name="pass" label="密碼"/>
<s:textfield name="age" label="年齡"/>
<s:textfield name="birthday" label="生日"/>
<s:submit/>
</s:form>
</body>
</html>
 在web-inf下添加一個dwr.xml文件.所有有應用中這個都是固定的
<!DOCTYPE dwr PUBLIC 
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" 
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd"
>

<dwr>
    
<allow>
        
<create creator="new" javascript="validator">
            
<param name="class" value="org.apache.struts2.validators.DWRValidator"/>
        
</create>
        
<convert converter="bean" match="com.opensymphony.xwork2.ValidationAwareSupport"/>
    
</allow>

    
<signatures>
        
<![CDATA[
        import java.util.Map;
        import org.apache.struts2.validators.DWRValidator;

        DWRValidator.doPost(String, String, Map<String, String>);
        
]]>
    
</signatures>
</dwr>

其它的文件與上篇文章一樣。。這個就可以實現基于ajax的服務端驗證