您的位置:首页 > 编程语言 > Java开发

struts1的DynaValidatorForm验证框架实例

2010-04-15 09:17 375 查看
1,reg.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="/struts-bean" prefix="bean" %>

<%@ taglib uri="/struts-html" prefix="html" %>

<%@ taglib uri="/struts-logic" prefix="logic" %>

<html>

<head>

<title>验证实例</title>

</head>

<body>

信息验证测试<br/>

<font color="red"><html:errors property="regErrorMsg
"/></font>

<html:form action="/reg.do?method=reg">

<html:text property="username"></html:text><html:errors property="username"/><br/>

<html:password property="password"></html:password><html:errors property="password"/><br/>

<html:submit>注册</html:submit>

</html:form>

</body>

</html>

2,RegAction.java

package com.struts;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

import org.apache.struts.actions.DispatchAction;

import org.apache.struts.validator.DynaValidatorForm;

public class RegAction extends DispatchAction {

public ActionForward reg(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){

ActionForward forward = null;

DynaValidatorForm dynaForm = (DynaValidatorForm)form;

String username = dynaForm.getString("username");

String password = dynaForm.getString("password");

ActionMessages msg = new ActionMessages();

if(username!=null && password!=null && username.equals("raining") && password.equals("123456")){

forward = mapping.findForward("suc");

}else{

msg.add("regErrorMsg
",new ActionMessage("reg.fail"));

saveErrors(request, msg);

forward = mapping.getInputForward();

}

return forward;

}

}

3,suc.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

<head>

<title>验证实例</title>

</head>

<body>

<h3>注册成功!!</h3>

</body>

</html>

4,struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd
">

<struts-config>

<data-sources />

<form-beans>

<form-bean name="regForm" type="org.apache.struts.validator.DynaValidatorForm">

<form-property name="username" type="java.lang.String"/>

<form-property name="password" type="java.lang.String"/>

</form-bean>

</form-beans>

<global-exceptions />

<global-forwards />

<action-mappings>

<action path="/reg" type="com.struts.RegAction" name="regForm"
parameter="method" input="/reg.jsp" scope="request" validate="true">

<forward name="suc" path="/suc.jsp"></forward>

</action>

</action-mappings>

<message-resources parameter="com.struts.ApplicationResources" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

<set-property property="stopOnFirstError" value="false"/>

</plug-in>

</struts-config>

5,validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE form-validation PUBLIC

"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"

"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd
">

<form-validation>

<formset>

<form name="regForm">

<field property="username" depends="required,minlength,maxlength">

<arg0 key="reg.username"/>

<arg1 key="${var:maxlength}" name="maxlength" resource="false"
/> <!--
这里的arg1对应Resources资源文件中“errors.maxlength={0}长度不能小于{1}”里的{1} -->

<arg1 key="${var:minlength}" name="minlength" resource="false" />

<var>

<var-name>maxlength</var-name>

<var-value>20</var-value>

</var>

<var>

<var-name>minlength</var-name>

<var-value>6</var-value>

</var>

</field>

<field property="password" depends="required,minlength,maxlength">

<arg0 key="reg.password"/>

<arg1 key="${var:minlength}" name="minlength" resource="false"
/><!--
name属性可以不写,反之注意属性值不要写错,由于我粗心把name="minlength"写成name="maxlength",导致提示“密码长
度不能小于null

” -->

<arg1 key="${var:maxlength}" name="maxlength" resource="false" />

<var>

<var-name>maxlength</var-name>

<var-value>20</var-value>

</var>

<var>

<var-name>minlength</var-name>

<var-value>6</var-value>

</var>

</field>

</form>

</formset>

</form-validation>

6,ApplicationResources.properties

# Project ztest

reg.username=用户名

reg.password=密码

errors.required={0}是必须的!

errors.maxlength={0}长度不能大于{1}

errors.minlength={0}长度不能小于{1}

#注册失败

reg.fail=注册失败

7,web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
">

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<jsp-config>

<taglib>

<taglib-uri>/struts-bean</taglib-uri>

<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>/struts-html</taglib-uri>

<taglib-location>/WEB-INF/struts-html.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>/struts-logic</taglib-uri>

<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>

</taglib>

</jsp-config>

</web-app>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: