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

说明

下面的内容是使用WebWork创建客户端校验的步骤. 注意:ww:form标签的validate属性必须设为true. 不是所有的theme都支持此特性(client-side validation)

第一步

创建jsp页面. 注意必须添加<ww:head >标签, 在这里它会设置css (xhtml theme)

<html>
<head>
    <title>Validation - Basic</title>
    <ww:head/>
</head>

<body>

<ww:form method="post" validate="true">
    <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来配置要使用的validator(校验器).

<!--
    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>

并未说明这个XXX-validation.xml 文件要配置在什么地方才能使之生效。

Posted by Anonymous at Mar 03, 2007 14:19 | Reply To This

这个xxx-validation.xml放在这个Action的class所在的目录就可以,xxx就是这个Action的名字。好像也可以对领域模型对象写这个validation吧,具体写法可以看看文档。

<field name="feast.time">
<field-validator type="date">
<param name="min">05/31/2007</param>
<param name="max">12/31/2017</param>
<message>The date must be between 05/31/2007 and 12/31/2017.</message>
</field-validator>
</field>
客户端生成javascript代码:
// field name: feast.time
// validator name: date
if (form.elements['feast.time'])

Unknown macro: { field = form.elements['feast.time']; var error = "The date must be between 05/31/2007 and 12/31/2017."; }

这些js显然不完全,其他类型的验证,客户端都有正确的js生成,就这个date类型的没有,什么原因???

Posted by Anonymous at Jun 08, 2007 02:48 | 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