输入完之后,点击保存按钮,就会出来这个提示
 把JSP的那个form里的validate=true给去掉就正常了。这是啥回事啊哎~~~
求各路豪杰解答<s:form name="editForm" action="savePerson" validate="true">
<table align="center">
<tr>
<td>
<label>
人员编号
</label>
</td>
<td>
<s:textfield label="人员编号" name="person.num" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.num</s:param>
</s:fielderror>
</td>
</tr>
<s:if test="person==null">
<s:hidden name="seq_num" value="%{seq_num}" />
</s:if>
<s:else>
<s:hidden name="seq_num" />
</s:else>
<tr>
<td>
<label>
姓名
</label>
</td>
<td>
<s:textfield label="姓名" name="person.chname" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.chname</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
身份证号
</label>
</td>
<td>
<s:textfield label="身份证号" name="person.id" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.id</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
帐号
</label>
</td>
<td>
<s:textfield label="" name="person.account" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.account</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
所属
</label>
</td>
<td>
<s:select label="" name="person.status"
list="#{0:'在岗人员',1:'内退人员',2:'存续公司',3:'IT中心员工'}" theme="simple" />
</td>
</tr>
<tr>
<td>
<label>
部门
</label>
</td>
<td>
<s:select label="" list="deptlist" name="deid" listKey="id"
listValue="deptname" value="%{person.dept.id.toString()}"
theme="simple" />
</td>
</tr>
<tr>
<td>
<label>
岗位层级
</label>
</td>
<td>
<s:select label="" list="wslist" name="wsid" listKey="id"
listValue="wlevel" value="%{person.ws.id.toString()}"
theme="simple" />
</td>
</tr>
<tr>
<td>
<label>
应发期数
</label>
</td>
<td>
<s:textfield label="" name="person.periodTotal" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.periodTotal</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
已发期数
</label>
</td>
<td>
<s:textfield label="" name="person.periodEd" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.periodEd</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
已发金额
</label>
</td>
<td>
<s:textfield label="" name="person.moneyEd" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.moneyEd</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
发放期数
</label>
</td>
<td>
<s:textfield label="" name="person.periodNow" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.periodNow</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
发放金额
</label>
</td>
<td>
<s:textfield label="" name="person.ws.standard" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.ws.standard</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
补发月数
</label>
</td>
<td>
<s:textfield label="" name="person.monthAdd" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.monthAdd</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
补发金额
</label>
</td>
<td>
<s:textfield label="" name="person.moneyAdd" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.moneyAdd</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<label>
发放总额
</label>
</td>
<td>
<s:textfield label="" name="person.moneyTotal" theme="simple" />
</td>
<td>
<s:fielderror cssStyle="color:red;font-size:14px;">
<s:param>person.moneyTotal</s:param>
</s:fielderror>
</td>
</tr>
<tr>
<td>
<s:submit align="right" value="保存" theme="simple" />
</td>
</tr>
</table>
</s:form>Struts.xml里的配置
<action name="savePerson" class="SavePersonAction" method="save">
<interceptor-ref name="params"/>
    <interceptor-ref name="validation"/>
<result name="SAVESUCCESS">/entry/manualentry.jsp</result>
</action><action name="editPerson" class="SavePersonAction" method="load">
<interceptor-ref name="params"/>
    <interceptor-ref name="validation"/>
<result name="LOADSUCCESS">/entry/manualentry.jsp</result></action>
validation.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
    <!-- Field-Validator Syntax -->
    <field name="person.num">
<field-validator type="requiredstring">
<message key="person.num.required" />
</field-validator>
</field>
   <field name="person.chname">
<field-validator type="requiredstring">
<message key="person.chname.required" />
</field-validator>
</field>
<field name="person.id">
<field-validator type="requiredstring">
<message key="person.id.required" />
</field-validator>
</field>
<field name="person.account">
<field-validator type="requiredstring">
<message key="person.account.required" />
</field-validator>
</field>
<field name="person.periodTotal">
<field-validator type="int">
<param name="min">1</param>
<param name="max">301</param>
<message key="person.periodTotal.required" />
</field-validator>
</field>
<field name="person.periodEd">
<field-validator type="int">
<param name="min">1</param>
<param name="max">301</param>
<message key="person.periodEd.required" />
</field-validator>
</field>
<field name="person.moneyEd">
<field-validator type="double">
<param name="min">1</param>
<param name="max">3000001</param>
<message key="person.moneyEd.required" />
</field-validator>
</field>
<field name="person.periodNow">
<field-validator type="int">
<param name="min">1</param>
<param name="max">301</param>
<message key="person.periodNow.required" />
</field-validator>
</field>
<field name="person.monthAdd">
<field-validator type="int">
<param name="min">1</param>
<param name="max">301</param>
<message key="person.monthAdd.required" />
</field-validator>
</field>
<field name="person.moneyAdd">
<field-validator type="double">
<param name="min">1</param>
<param name="max">3000001</param>
<message key="person.moneyAdd.required" />
</field-validator>
</field>
<field name="person.moneyTotal">
<field-validator type="double">
<param name="min">1</param>
<param name="max">3000001</param>
<message key="person.moneyTotal.required" />
</field-validator>
</field>
<field name="person.ws.standard">
<field-validator type="double">
<param name="min">1</param>
<param name="max">3000001</param>
<message key="person.ws.standard.required" />
</field-validator>
</field>
</validators> 

解决方案 »

  1.   

    产生的错误的截图地址
    http://i1233.photobucket.com/albums/ff386/okboy1/5185ef6b-8f6c-3dbe-98a7-5b9897eadb23.jpg
      

  2.   

    只建议在服务器端使用struts2的验证框架前台的js验证不建议使用struts2的验证,他自动输出到前端jsp的js代码 冗余且低效建议使用三方的js验证表单框架,比如form.validation ,这个是基于jquery的表单验证插件
      

  3.   


    请问什么叫只在服务器端使用struts2的验证框架?
      

  4.   

    在页面加
    <title>
       <s:head />
    </title>
      

  5.   


    struts2提供的验证框架是基于服务端的,你在表单中设置 validate=true,struts2 则会给你生成jsp页面的js验证代码健壮的系统,前台js验证和后台服务器的验证都要做。 使用前台js验证能减轻服务端的压力,提高性能和效率,保障系统更安全。
      

  6.   

    我用了您介绍的这个插件
    但会弹出 object expected error
    在jsp页面的<head>里我只加入了这三个
    <script src="jquery_last.js" type="text/javascript"></script>
    <script src="formValidator.js" type="text/javascript" charset="UTF-8"></script>
    <script src="formValidatorRegex.js" type="text/javascript" charset="UTF-8"></script>这样行吗?要不要再去下JQuery?
      

  7.   

    我觉得是$(document).ready(function()有错误
    把这一行间成两行之后可以大概确定是
    $(document) 出错。
    object expected,难道js代码还获取不了document?<script type="text/javascript">
    $(document).ready(function(){

      $.formValidator.initConfig({
      formid:"form1",
      onerror:function(msg){
      alert(msg)
      },
      onsuccess:function(){
      alert('成功');
      return false;
      }});    $("#num").formValidator( {
            onshow : "请输入人员编号",
            onfocus : "人员编号必须为8位",
            oncorrect : "该人员编号格式正确"
        }).inputValidator( {
            min : 8,
            max : 8,
            onerror : "你输入的人员编号非法,请确认"
        }).regexValidator( {
            regexp : "username",
            datatype : "enum",
            onerror : "人员编号格式不正确"
        });
      

  8.   

    原来是路径问题啊我靠!!
    把3个JS放到webroot下就OK了
    这个jsp是action转过去的,路径会变化