关于struts的客户端验证:
struts-config.xml:
<form-bean name="registrationForm" type="validator.RegistrationForm" /> <action path="/registration-submit"
type="validator.RegistrationAction"
name="registrationForm"
scope="request"
validate="true"
input="input">
<set-property property="cancellable"
value="true"/>
<forward name="input" path="/registration.do" />
<forward name="success" path="/index.jsp" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml" />
这个validator.RegistrationForm是有的.
Registration.jsp:
开始
<html:form action="registration-submit" onsubmit="return validateRegistrationForm(this);">
最后
<html:javascript formName="registrationForm" staticJavascript="true"/>
请专家们帮忙看一下..急啊...
struts-config.xml:
<form-bean name="registrationForm" type="validator.RegistrationForm" /> <action path="/registration-submit"
type="validator.RegistrationAction"
name="registrationForm"
scope="request"
validate="true"
input="input">
<set-property property="cancellable"
value="true"/>
<forward name="input" path="/registration.do" />
<forward name="success" path="/index.jsp" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml" />
这个validator.RegistrationForm是有的.
Registration.jsp:
开始
<html:form action="registration-submit" onsubmit="return validateRegistrationForm(this);">
最后
<html:javascript formName="registrationForm" staticJavascript="true"/>
请专家们帮忙看一下..急啊...
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:533)
at org.apache.jsp.jsRegistration$jsp._jspService(jsRegistration$jsp.java:378)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:355)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1023)
at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:572)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
中的type="validator.RegistrationForm"你确定你没写错吗?
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/config/validator-rules.xml,
/WEB-INF/config/validator-son-rules.xml"
</plug-in>
validator-son-rules.xml如下
<!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>
<global>
<!--验证日期的合法性,如2月没有30、31日,29日只有在润年才有等-->
<validator name="date"
classname="org.apache.struts.util.StrutsValidator"
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"
msg="errors.date" jsFunctionName="DateValidations">
<javascript><![CDATA[
function validateDate(form) {
var bValid = true;
var focusField = null;
var i = 0;
var formN = form.name;
oDate = eval('new ' + formN + '_DateValidations');
for (x in oDate) {
var field = form[oDate[x][0]];
var value = field.value;
if ((field.type == 'hidden' ||
field.type == 'text' ||
field.type == 'textarea') &&
(value.length>0)){
var date_array = value.split("-");
if(!(isValidDate(date_array[2],date_array[1],date_array[0]))){
if (i == 0) {
focusField = field;
}
alert(oDate[x][1]);
focusField.focus();
focusField.select();
bValid = false;
return bValid;
}
}
}
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>
</global>
</form-validation>
<?xml version="1.0" encoding="gb2312" ?>
<!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>
<global>
<constant>
<constant-name>date</constant-name>
<constant-value>^\d{4}-\d{2}-\d{2}$</constant-value>
</constant>
<constant>
<constant-name>date1</constant-name>
<constant-value>^\d{4}-\d{2}$</constant-value>
</constant>
<constant>
<constant-name>year</constant-name>
<constant-value>^\d{4}$</constant-value>
</constant>
</global>
<formset>
<form name="你的FORM名,第一个字母要小写">
<!--业务宗号-->
<field property="ywzh" depends="integer,sbc">
<msg name="integer" key="errors.long" bundle="title"/>
<msg name="sbc" key="error.sbc" bundle="title"/>
<arg0 key="vlxftbrowseForm.ywzh"/>
<arg1 name="sbc" key="${var:sbc_and_dbc_length}" resource="false"/>
<var>
<var-name>sbc_and_dbc_length</var-name>
<var-value>10</var-value>
</var>
</field>
<!--项目名称-->
<field property="gcxmmc" depends="sbc">
<msg name="sbc" key="errors.sbc" bundle="title"/>
<arg0 key="vlxftbrowseForm.bcxmmc"/>
<arg1 name="sbc" key="${var:sbc_and_dbc_length}" resource="false"/>
<var>
<var-name>sbc_and_dbc_length</var-name>
<var-value>50</var-value>
</var>
</field>
</form>
</formset> </form-validation>
我的是日语操作系统
我查了一下。我的配置好像没有什么问题。。form的名字也没有错
就是不知道错在那里。。哎。