</html:form> <html:javascript dynamicJavascript="true" staticJavascript="true" formName="UserForm"/>validator-rules.xml <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.ActionMessages, 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) { alert(x); var field = form[oRequired[x][0]];
var value=''; // get field's value if (field.type == "select-one") { var si = field.selectedIndex; if (si >= 0) { value = field.options[si].value; } } else { value = field.value; }
if (trim(value).length == 0) {
if (i == 0) { focusField = field; } fields[i++] = oRequired[x][1]; bValid = false; } } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return bValid; } // Trim whitespace from left and right sides of s. function trim(s) { return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); } ]]> </javascript> </validator>struts-config.xml <action input="/jsp/detail.jsp" name="UserForm" scope="request" path="/UserAdd" type="action.UserAddAction" validate="true"> <forward name="userlist" path="/jsp/detail.jsp" /> <forward name="error" path="/jsp/Error.jsp" /> </action>
这句out.println("<script language=\"javascript\">");
是在哪里面的???
<form-bean name="testValidatorForm" type="org.apache.struts.validator.DynaValidatorForm">testValidator.jsp----------------
<html:javascript formName="testValidatorForm"/><html:form action="/testValidator" method="post" onsubmit="return validateTestValidatorForm(this);"><bean:message key="test.name"/>
<html:text property="userName"/><html:errors property="userName"/><br/>PS: onsubmit="return ???这个的form名一定要和你struts-config.xml中的form名一样还有大小写也要注意,首字母都得大写"
在就是validator.xml中的属性名要和资源文件还有你的FormBean(或动态from)<form-bean name="testValidatorForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="sex" type="java.lang.String" />
<form-property name="userName" type="java.lang.String" />
<form-property name="age" type="java.lang.String" />
</form-bean>中一样,我估计是哪名字不一样或大小写问题吧!
detail.jsp:
<html:form action="/UserAdd" focus="loginname" onsubmit="return validateUserForm(this);">
<table>
<tr>
<td>login名</td>
<td><html:text property="loginname"/><html:errors property="loginname"/></td>
<td>名前</td>
<td><html:text property="realname" /> </td>
</tr>
</table>
</html:form>
<html:javascript dynamicJavascript="true" staticJavascript="true" formName="UserForm"/>validator-rules.xml
<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.ActionMessages,
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) {
alert(x);
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value='';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (trim(value).length == 0) {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
// Trim whitespace from left and right sides of s.
function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
]]>
</javascript> </validator>struts-config.xml
<action
input="/jsp/detail.jsp"
name="UserForm"
scope="request"
path="/UserAdd"
type="action.UserAddAction"
validate="true">
<forward name="userlist" path="/jsp/detail.jsp" />
<forward name="error" path="/jsp/Error.jsp" />
</action>
</action-mappings>
<message-resources parameter="ApplicationResources" />
<!-- Validator Configuration -->
<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="true" />
</plug-in>