web.xml :
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><display-name>Smaple</display-name><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><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><taglib><taglib-uri>/WEB-INF/struts-bean</taglib-uri><taglib-location>/WEB-INF/struts-bean.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/struts-logic</taglib-uri><taglib-location>/WEB-INF/struts-logic.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/struts-html</taglib-uri><taglib-location>/WEB-INF/struts-html.tld</taglib-location></taglib><login-config><auth-method>BASIC</auth-method></login-config></web-app>
Struts-config.xml :
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN""http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config><data-sources /><form-beans><form-bean name="LoginForm" type="com.test.LoginFormBean" /></form-beans><global-exceptions /><global-forwards><forward name="error" path="/error.jsp" /></global-forwards><action-mappings><action forward="/login.jsp" path="/home" type="org.apache.struts.ActionForward" /><action input="/login.jsp" name="LoginForm" path="/login" type="com.test.LoginAction" validate="true"><forward name="success" path="/layout.jsp" /><forward name="failure" path="/failure.jsp" /></action></action-mappings><controller /><message-resources parameter="com/test/ApplicationResource" /><plug-in className="org.apache.struts.validator.ValidatorPlugIn"><set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml" /></plug-in></struts-config>
LoginAction.java :
package com.test;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;
public class LoginAction extends Action {public ActionForward execute(ActionMapping maping, ActionForm form, HttpServletRequest request, HttpServletResponse response){String returnParam = null;LoginFormBean loginFormBean = (LoginFormBean)form;
String username = loginFormBean.getUsername();String password = loginFormBean.getPassword();
System.out.println("Usename : " +username+ " Password : "+password);
if(username.equals("admin") && password.equals("admin")){returnParam = "success";}else{returnParam = "failure";}
return maping.findForward(returnParam);}}
Validation.xml :
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE form-validation PUBLIC"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN""http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"><form-validation>
<global><!-- An example global constant<constant><constant-name>postalCode</constant-name><constant-value>^\d{5}\d*$</constant-value></constant>end example--></global><formset><form name="LoginForm"><fieldproperty="username"depends="required"><arg0 key="error.userName.required"/></field><fieldproperty="password"depends="required,mask"><arg0 key="error.password.required"/><var><var-name>mask</var-name><var-value>^[0-9a-zA-Z]*$</var-value></var></field></form></formset></form-validation>
validation-rules.xml :
<!DOCTYPE form-validation PUBLIC"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN""http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation><global><validator name="required"classname="org.apache.struts.validator.FieldChecks"method="validateRequired"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"msg="errors.required"><javascript><![CDATA[function validateRequired(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oRequired = new required();for (x in oRequired) {var field = form[oRequired[x][0]];
if (field.type == 'text' ||field.type == 'textarea' ||field.type == 'file' ||field.type == 'select-one' ||field.type == 'radio' ||field.type == 'password') {
var value = '';// get field's valueif (field.type == "select-one") {var si = field.selectedIndex;if (si >= 0) {value = field.options[si].value;}} else {value = field.value;}
if (value == '') {
if (i == 0) {focusField = field;}fields[i++] = oRequired[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator><validator name="requiredif"classname="org.apache.struts.validator.FieldChecks"method="validateRequiredIf"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,org.apache.commons.validator.Validator,javax.servlet.http.HttpServletRequest"msg="errors.required"></validator><validator name="minlength"classname="org.apache.struts.validator.FieldChecks"method="validateMinLength"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.minlength"><javascript><![CDATA[function validateMinLength(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oMinLength = new minlength();for (x in oMinLength) {if (form[oMinLength[x][0]].type == 'text' ||form[oMinLength[x][0]].type == 'textarea') {var iMin = parseInt(oMinLength[x][2]("minlength"));if (form[oMinLength[x][0]].value.length < iMin) {if (i == 0) {focusField = form[oMinLength[x][0]];}fields[i++] = oMinLength[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator>
<validator name="maxlength"classname="org.apache.struts.validator.FieldChecks"method="validateMaxLength"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.maxlength"><javascript><![CDATA[function validateMaxLength(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oMaxLength = new maxlength();for (x in oMaxLength) {if (form[oMaxLength[x][0]].type == 'text' ||form[oMaxLength[x][0]].type == 'textarea') {var iMax = parseInt(oMaxLength[x][2]("maxlength"));if (form[oMaxLength[x][0]].value.length > iMax) {if (i == 0) {focusField = form[oMaxLength[x][0]];}fields[i++] = oMaxLength[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator>
<validator name="mask"classname="org.apache.struts.validator.FieldChecks"method="validateMask"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.invalid"><javascript><![CDATA[function validateMask(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oMasked = new mask();for (x in oMasked) {if ((form[oMasked[x][0]].type == 'text' ||form[oMasked[x][0]].type == 'textarea' ||form[oMasked[x][0]].type == 'password') &&(form[oMasked[x][0]].value.length > 0)) {if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {if (i == 0) {focusField = form[oMasked[x][0]];}fields[i++] = oMasked[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}function matchPattern(value, mask) {var bMatched = mask.exec(value);if (!bMatched) {return false;}return true;}]]></javascript></validator>
<validator name="byte"classname="org.apache.struts.validator.FieldChecks"method="validateByte"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.byte"jsFunctionName="ByteValidations"><javascript><![CDATA[function validateByte(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oByte = new ByteValidations();for (x in oByte) {var field = form[oByte[x][0]];
if (field.type == 'text' ||field.type == 'textarea' ||field.type == 'select-one' ||field.type == 'radio') {var value = '';// get field's valueif (field.type == "select-one") {var si = field.selectedIndex;if (si >= 0) {value = field.options[si].value;}} else {value = field.value;}
if (value.length > 0) {var iValue = parseInt(value);if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {if (i == 0) {focusField = field;}fields[i++] = oByte[x][1];bValid = false;}}
}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator>
<validator name="short"classname="org.apache.struts.validator.FieldChecks"method="validateShort"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.short"jsFunctionName="ShortValidations"><javascript><![CDATA[function validateShort(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oShort = new ShortValidations();for (x in oShort) {var field = form[oShort[x][0]];
if (field.type == 'text' ||field.type == 'textarea' ||field.type == 'select-one' ||field.type == 'radio') {
var value = '';// get field's valueif (field.type == "select-one") {var si = field.selectedIndex;if (si >= 0) {value = field.options[si].value;}} else {value = field.value;}
if (value.length > 0) {
var iValue = parseInt(value);if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {if (i == 0) {focusField = field;}fields[i++] = oShort[x][1];bValid = false;}}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator>
<validator name="integer"classname="org.apache.struts.validator.FieldChecks"method="validateInteger"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.integer"jsFunctionName="IntegerValidations"><javascript><![CDATA[function validateInteger(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oInteger = new IntegerValidations();for (x in oInteger) {var field = form[oInteger[x][0]];if (field.type == 'text' ||field.type == 'textarea' ||field.type == 'select-one' ||field.type == 'radio') {
var value = '';// get field's valueif (field.type == "select-one") {var si = field.selectedIndex;if (si >= 0) {value = field.options[si].value;}} else {value = field.value;}
if (value.length > 0) {
if (!isAllDigits(value)) {bValid = false;} else {var iValue = parseInt(value);if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {if (i == 0) {focusField = field;}fields[i++] = oInteger[x][1];bValid = false;}}}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}function isAllDigits(argvalue) {argvalue = argvalue.toString();var validChars = "0123456789";var startFrom = 0;if (argvalue.substring(0, 2) == "0x") {validChars = "0123456789abcdefABCDEF";startFrom = 2;} else if (argvalue.charAt(0) == "0") {validChars = "01234567";startFrom = 1;}for (var n = 0; n < argvalue.length; n++) {if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;}return true;}]]></javascript></validator>
<validator name="long"classname="org.apache.struts.validator.FieldChecks"method="validateLong"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.long"/>
<validator name="float"classname="org.apache.struts.validator.FieldChecks"method="validateFloat"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.float"jsFunctionName="FloatValidations"><javascript><![CDATA[function validateFloat(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oFloat = new FloatValidations();for (x in oFloat) {var field = form[oFloat[x][0]];
if (field.type == 'text' ||field.type == 'textarea' ||field.type == 'select-one' ||field.type == 'radio') {
var value = '';// get field's valueif (field.type == "select-one") {var si = field.selectedIndex;if (si >= 0) {value = field.options[si].value;}} else {value = field.value;}
if (value.length > 0) {
var iValue = parseFloat(value);if (isNaN(iValue)) {if (i == 0) {focusField = field;}fields[i++] = oFloat[x][1];bValid = false;}}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator>
<validator name="double"classname="org.apache.struts.validator.FieldChecks"method="validateDouble"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.double"/>
<validator name="date"classname="org.apache.struts.validator.FieldChecks"method="validateDate"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.date"jsFunctionName="DateValidations"><javascript><![CDATA[function validateDate(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oDate = new DateValidations();for (x in oDate) {var value = form[oDate[x][0]].value;var datePattern = oDate[x][2]("datePatternStrict");if ((form[oDate[x][0]].type == 'text' ||form[oDate[x][0]].type == 'textarea') &&(value.length > 0) &&(datePattern.length > 0)) {var MONTH = "MM";var DAY = "dd";var YEAR = "yyyy";var orderMonth = datePattern.indexOf(MONTH);var orderDay = datePattern.indexOf(DAY);var orderYear = datePattern.indexOf(YEAR);if ((orderDay < orderYear && orderDay > orderMonth)) {var iDelim1 = orderMonth + MONTH.length;var iDelim2 = orderDay + DAY.length;var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);if (iDelim1 == orderDay && iDelim2 == orderYear) {dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");} else if (iDelim1 == orderDay) {dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");} else if (iDelim2 == orderYear) {dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");} else {dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");}var matched = dateRegexp.exec(value);if(matched != null) {if (!isValidDate(matched[2], matched[1], matched[3])) {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else if ((orderMonth < orderYear && orderMonth > orderDay)) {var iDelim1 = orderDay + DAY.length;var iDelim2 = orderMonth + MONTH.length;var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);if (iDelim1 == orderMonth && iDelim2 == orderYear) {dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");} else if (iDelim1 == orderMonth) {dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");} else if (iDelim2 == orderYear) {dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");} else {dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");}var matched = dateRegexp.exec(value);if(matched != null) {if (!isValidDate(matched[1], matched[2], matched[3])) {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else if ((orderMonth > orderYear && orderMonth < orderDay)) {var iDelim1 = orderYear + YEAR.length;var iDelim2 = orderMonth + MONTH.length;var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);if (iDelim1 == orderMonth && iDelim2 == orderDay) {dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");} else if (iDelim1 == orderMonth) {dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");} else if (iDelim2 == orderDay) {dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");} else {dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");}var matched = dateRegexp.exec(value);if(matched != null) {if (!isValidDate(matched[3], matched[2], matched[1])) {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}} else {if (i == 0) {focusField = form[oDate[x][0]];}fields[i++] = oDate[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}function isValidDate(day, month, year) {if (month < 1 || month > 12) {return false;}if (day < 1 || day > 31) {return false;}if ((month == 4 || month == 6 || month == 9 || month == 11) &&(day == 31)) {return false;}if (month == 2) {var leap = (year % 4 == 0 &&(year % 100 != 0 || year % 400 == 0));if (day>29 || (day == 29 && !leap)) {return false;}}return true;}]]></javascript></validator><!-- range is deprecated use intRange instead --><validator name="range"classname="org.apache.struts.validator.FieldChecks"method="validateIntRange"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends="integer"msg="errors.range"><javascript><![CDATA[function validateRange(form) {return validateIntRange(form);}]]></javascript></validator><validator name="intRange"classname="org.apache.struts.validator.FieldChecks"method="validateIntRange"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends="integer"msg="errors.range"><javascript><![CDATA[function validateIntRange(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oRange = new intRange();for (x in oRange) {if ((form[oRange[x][0]].type == 'text' ||form[oRange[x][0]].type == 'textarea') &&(form[oRange[x][0]].value.length > 0)) {var iMin = parseInt(oRange[x][2]("min"));var iMax = parseInt(oRange[x][2]("max"));var iValue = parseInt(form[oRange[x][0]].value);if (!(iValue >= iMin && iValue <= iMax)) {if (i == 0) {focusField = form[oRange[x][0]];}fields[i++] = oRange[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator><validator name="floatRange"classname="org.apache.struts.validator.FieldChecks"method="validateFloatRange"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends="float"msg="errors.range"><javascript><![CDATA[function validateFloatRange(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oRange = new floatRange();for (x in oRange) {if ((form[oRange[x][0]].type == 'text' ||form[oRange[x][0]].type == 'textarea') &&(form[oRange[x][0]].value.length > 0)) {var fMin = parseFloat(oRange[x][2]("min"));var fMax = parseFloat(oRange[x][2]("max"));var fValue = parseFloat(form[oRange[x][0]].value);if (!(fValue >= fMin && fValue <= fMax)) {if (i == 0) {focusField = form[oRange[x][0]];}fields[i++] = oRange[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}]]></javascript></validator><validator name="creditCard"classname="org.apache.struts.validator.FieldChecks"method="validateCreditCard"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.creditcard"><javascript><![CDATA[function validateCreditCard(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oCreditCard = new creditCard();for (x in oCreditCard) {if ((form[oCreditCard[x][0]].type == 'text' ||form[oCreditCard[x][0]].type == 'textarea') &&(form[oCreditCard[x][0]].value.length > 0)) {if (!luhnCheck(form[oCreditCard[x][0]].value)) {if (i == 0) {focusField = form[oCreditCard[x][0]];}fields[i++] = oCreditCard[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}/*** Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl*/function luhnCheck(cardNumber) {if (isLuhnNum(cardNumber)) {var no_digit = cardNumber.length;var oddoeven = no_digit & 1;var sum = 0;for (var count = 0; count < no_digit; count++) {var digit = parseInt(cardNumber.charAt(count));if (!((count & 1) ^ oddoeven)) {digit *= 2;if (digit > 9) digit -= 9;};sum += digit;};if (sum == 0) return false;if (sum % 10 == 0) return true;};return false;}function isLuhnNum(argvalue) {argvalue = argvalue.toString();if (argvalue.length == 0) {return false;}for (var n = 0; n < argvalue.length; n++) {if ((argvalue.substring(n, n+1) < "0") ||(argvalue.substring(n,n+1) > "9")) {return false;}}return true;}]]></javascript></validator>
<validator name="email"classname="org.apache.struts.validator.FieldChecks"method="validateEmail"methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,org.apache.struts.action.ActionErrors,javax.servlet.http.HttpServletRequest"depends=""msg="errors.email"><javascript><![CDATA[function validateEmail(form) {var bValid = true;var focusField = null;var i = 0;var fields = new Array();oEmail = new email();for (x in oEmail) {if ((form[oEmail[x][0]].type == 'text' ||form[oEmail[x][0]].type == 'textarea') &&(form[oEmail[x][0]].value.length > 0)) {if (!checkEmail(form[oEmail[x][0]].value)) {if (i == 0) {focusField = form[oEmail[x][0]];}fields[i++] = oEmail[x][1];bValid = false;}}}if (fields.length > 0) {focusField.focus();alert(fields.join('\n'));}return bValid;}/*** Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),* http://javascript.internet.com*/function checkEmail(emailStr) {if (emailStr.length == 0) {return true;}var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s" + specialChars + "\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;var atom=validChars + '+';var word="(" + atom + "|" + quotedUser + ")";var userPat=new RegExp("^" + word + "(\\." + word + ")*$");var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");var matchArray=emailStr.match(emailPat);if (matchArray == null) {return false;}var user=matchArray[1];var domain=matchArray[2];if (user.match(userPat) == null) {return false;}var IPArray = domain.match(ipDomainPat);if (IPArray != null) {for (var i = 1; i <= 4; i++) {if (IPArray[i] > 255) {return false;}}return true;}var domainArray=domain.match(domainPat);if (domainArray == null) {return false;}var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if ((domArr[domArr.length-1].length < 2) ||(domArr[domArr.length-1].length > 3)) {return false;}if (len < 2) {return false;}return true;}]]></javascript></validator></global></form-validation>
LoginFormBean.java :
package com.test;import org.apache.struts.validator.ValidatorForm;public class LoginFormBean extends ValidatorForm {/****/private static final long serialVersionUID = 1L;private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
index.jsp :
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %><%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %><jsp:forward page="home.do"></jsp:forward>
login.jsp :
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %><%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %><html:form action="login.do"><html:errors /><html:javascript formName="LoginForm"/>User Name :<html:text property="username"></html:text> <br />Password : <html:password property="password"></html:password> <br /><html:submit value="Login"></html:submit> <html:cancel value="Cancel"></html:cancel></html:form>
layout.jsp :
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %><%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %>You are in Layout page
failure.jsp :
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %><%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %><html:html><head><title></title></head><body>You are in Failure Page</body></html:html>