使用AJAX的Struts验证框架(5)

来源:百度文库 编辑:神马文学网 时间:2024/06/03 06:38:06
构建JSP和Struts配置
要模拟验证处理的结果,我们首先需要构建呈现层,方法是合并我们已经构建的标签库。在此例中,我试图给出一个示例验证(通过使用来自Struts的验证规则组件)以及来自表单本身的验证。准备五个JSP页面下的文本框。第一个到第四个文本框使用验证规则配置,第五个文本框使用来自动作表单的验证流程。除此之外,我们还需要一个提交按钮,以在提交表单后模拟它,现有的struts验证仍在没有AJAX的情况下工作。用户界面外观如图5所示。

构建动作和动作表单
为获得Struts动作,我们转到已经构建的JSP。此动作代码如下所示:
public ActionForward execute(...) { return mapping.findForward("success"); }
如果输入为空,则此动作表单代码将验证requiredText属性。请记住,要从AjaxForm类扩展此表单。动作表单的验证方法如下所示:
public ActionErrors validate(...) {
ActionErrors errors = new ActionErrors();
if (StringUtils.isEmpty(this.requiredText)) {
errors.add("requiredText", new ActionError("error.required.input"));
}
request.setAttribute(Globals.ERROR_KEY, errors);
}
应用Struts验证规则
配置Struts验证规则(例如最小长度、最大长度、电子邮件和模式文本)将应用于客户端的输入对象,且配置与清单4类似。
清单4
<field property="paternText" depends="required,mask">
<arg0 key="label.paternText"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9]{3}-[0-9]{2}$</var-value>
</var>
</field>
<field property="minLength" depends="minlength">
<arg0 key="label.minLength"/>
<arg1 key="${var:minlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>5</var-value>
</var>
</field>
<field property="maxLength" depends="maxlength">
<arg0 key="label.maxLength"/>
<arg1 key="${var:maxlength}" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>5</var-value>
</var>
</field>
<field property="email" depends="email">
<arg0 key="label.email"/>
</field>