我用Strtus框架,用到了里面的validation验证的客户,validation.xml
里面的相关代码如下: <form-bean name="bookForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="registerInfo" type="hotel.financial.domain.Registerinfo"/>
<form-property name="customer" type="hotel.customer.domain.Customer"/>
<form-property name="room" type="hotel.room.domain.Room"/>
<form-property name="enterDate" type="java.lang.String"/>

</form-bean>
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,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
                  msg="errors.required">
                   <javascript><![CDATA[
            function validateRequired(form) {
                var isValid = 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 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];
                        isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }
            
            // Trim whitespace from left and right sides of s.
            function trim(s) {
                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
            }
            
            ]]>
         </javascript> 
</validator>然后就是 book.jsp的全部代码如下:<%@ include file="layout/include.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><bean:message key="title.title"/></title>
<style type="text/css">
<!--
.style2 { color: #FFFFFF;
font-weight: bold;
}
.style1 { font-size: 16px;
}
body {
margin-top: 0px;
margin-left: 5px;
}
body,td,th {
font-size: 14px;
color: #000000;
}
-->
</style>
</head><body>
<table width="100%" height="615"  border="0" cellpadding="0" cellspacing="1" bgcolor="F3631D">
  <tr>
    <td height="32" valign="top" bgcolor="F07C44"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="16%" height="31"><img src="image/2top.gif" width="91" height="31"></td>
          <td width="2%">&nbsp;</td>
          <td width="67%"><div align="center"><img src="image/m1.gif" width="123" height="32"></div></td>
          <td width="15%">&nbsp;</td>
        </tr>
    </table></td>
  </tr>
  <html:form action="book.do?method=book" onsubmit="return validateBookForm(this);">
<html:errors/>
  <tr>
    <td height="580" valign="top" bgcolor="FED9C7"><div align="center">
      <p><br><br>
        <span class="style1"><bean:message key="book.title"/></span>
</p><br><br><br>
 
      <table width="50%"  border="0" cellpadding="0" cellspacing="1" bgcolor="F77D42">        <tr>
          <td width="39%" height="30" align="left" class="style2">&nbsp;<bean:message key="book.roomNum"/></td>
          <td width="61%" bgcolor="#FFDBC6"><input type="text" name="registerInfo.roomNum" value="<bean:write name="room" property="roomnum" scope="request"/>" ></td>
        </tr>
        <tr>
          <td height="30" align="left" class="style2">&nbsp;<bean:message key="book.name"/></td>
          <td bgcolor="#FFDBC6"><input type="text"  name="customer.name"></td>
        </tr>
        <tr>
          <td height="30" align="left" class="style2">&nbsp;<bean:message key="book.phone"/></td>
          <td bgcolor="#FFDBC6"><input type="text" name="customer.phoneNum"></td>
        </tr>
        <tr>
          <td height="30" align="left" class="style2">&nbsp;<bean:message key="book.enterDate"/></td>
          <td bgcolor="#FFDBC6"><input type="text" name="enterDate"></td>
        </tr>        <tr>
          <td height="30" align="left" class="style2">&nbsp;<bean:message key="book.days"/></td>
          <td bgcolor="#FFDBC6"><input type="text" name="registerInfo.days"></td>
        </tr>
      </table>      <p><br><br><br><br>
  <!--
<input type="image" border=0 src="image/bt_submit.gif"   property="submit" value="submit" >&nbsp;&nbsp;
  <input type="image" border=0 src="image/bt_reset.gif"  property="reset" value="reset" >&nbsp;&nbsp;
  <input type="image" border=0 src="pages/image/bt_return.gif"  property="return" value="return" >
-->
        <html:submit></html:submit>
      <br></p>
    </div></td>
  </tr>
 
  </html:form></table>    <html:javascript formName="bookForm" dynamicJavascript="true" staticJavascript="false" />
</body></html>问题就是,本来按照这样的写法,应该是使用了 客户端验证,当验证失败的时候,应该是会直接利用 javascript 弹出窗口说验证哪里有问题的,但是却没有,也没有进行客户端验证就直接提交上了服务器了。
我看过book.jsp的源码,里面确实嵌入了 javascript,但是却没有发生验证,
我不知道是哪里的问题了,请高手指教。