说明
下面描述了在webwork中怎样添加一个简单的 ajax 校验.
 | 在开始之前必须要设置了DWR servlet, 使用了dojo 和 ajax theme. |
 | 在Ajax theme 中, dwr 用来进行正常的校验,而dojo用来处理其他的事情 (widgets(页面组件), XHR, 浏览器的 JS 事件(event)等等.) |
 | 为了让校验可以正常运作,建议你使用标准的WebWork Tag. |
设置DWR
DWR通过位于/WEB-INF/目录下的dwr配置(dwr.xml)来设置.如果需要把它放在其他位置,请访问 http://getahead.ltd.uk/dwr/
了解更多信息.
<!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="com.opensymphony.webwork.validators.DWRValidator"/>
</create>
<convert converter="bean" match="com.opensymphony.xwork.ValidationAwareSupport"/>
</allow>
<signatures>
<![CDATA[
import java.util.Map;
import com.opensymphony.webwork.validators.DWRValidator;
DWRValidator.doPost(String, String, Map<String, String>);
]]>
</signatures>
</dwr>
需要注册一个DWRServlet到web应用程序中.下面显示了一个典型的配置了DWRSerlvet的web.xml.
<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>
第一步
创建jsp页面. 注意<ww:head ...>标签用来设置theme,以放置必要的dojo脚本等等. 查看ajax的theme中的 head.ftl可以了解更多信息.
<html>
<head>
<title>Validation - Basic</title>
<ww:head theme="ajax"/>
</head>
<body>
<ww:form method="post" validate="true" theme="ajax">
<ww:textfield label="Name" name="name"/>
<ww:textfield label="Age" name="age"/>
<ww:textfield label="Favorite color" name="answer"/>
<ww:submit/>
</ww:form>
</body>
</html>
第二步
创建action类
public class QuizAction extends ActionSupport {
String name;
int age;
String answer;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
}
第三步
创建validation.xml
<!--
Add the following DOCTYPE declaration as first line of your XXX-validation.xml file:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-->
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>You must enter a name</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">19</param>
<message>Only people ages 13 to 19 may take this quiz</message>
</field-validator>
</field>
</validators>
what's the location of the validation.xml file????