JavaScud | Forum | JIRA | Blog |
  Dashboard > WebWork2文档中文化计划 > ... > Validation > AJAX Validation
  WebWork2文档中文化计划 Log In View a printable version of the current page.  
  AJAX Validation
Added by scud, last edited by scud on Apr 30, 2006  (view change)
Labels: 
(None)

说明

下面描述了在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????

Posted by Anonymous at Mar 29, 2007 21:56 | Reply To This

validation.xml放在什么地方

Posted by Anonymous at Sep 30, 2007 11:45 | Reply To This
Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators