没有代码,怎么看的出问题在哪啊!!
是不是你没有把设置后的值保存到session中啊

解决方案 »

  1.   

    关于这个struts验证有两种情况,其一是添加一个project的验证,其二为修改一个project。具体执行步骤如下。
    steps:
    if add a new project:
    1.URL: projectAction1.do?method=initUpdateProject
    2.display project_detail.jsp, fill form data
    3.submit(projectAction2.do?method=submitUpdateProject&projectID) and the system prompt validation error: project code and name is requered, and the project code and name input box are empty now.
    Actually the fields were filled in data before submiting. I think the form data on the page are not populated into the form bean normally.if modify an existed project:
    1.URL: projectAction1.do?method=initUpdateProject&projectId=***
    2.project_detail.jsp, and the exsited data from the form bean displayed well on the page
    3.change the page data 
    4.submit(projectAction2.do?method=submitUpdateProject&projectID=***) 
    and the system prompt error:
    "HTTP Status 400 - Request[/projectAction2] does not contain handler parameter named method
    --------------------------------------------------------------------------------
    type Status report
    message Request[/projectAction2] does not contain handler parameter named method
    description The request sent by the client was syntactically incorrect (Request[/projectAction2] does not contain handler parameter named method)."
    and at the now, the URL become: projectAction.do?emptymsg=+can+not+be+empty&spacemsg=+can+not+has+space&digitmsg=+should+be+digit&maxlengthmsg=%27s+maximum+length+is+&minlengthmsg=%27s+minimum+length+is+&exactlengthmsg=null&negativemsg=+can+not+be+negative&telephonemsg=Telephone+format+is+invalid&zipcodemsg=Zipcode+format+is+invalid&mobilemsg=Mobile+format+is+invalid&emailmsg=E-mail+address+format+error&comparemsg=+does+not+match&dateformatmsg=Date+format+should+be+&timeformatmsg=Time+format+should+be+&dateinvalidmsg=+is+not+a+valid+date%2Ftime&dismatchmsg=+is+not+correct&selectmsg=+At+least+choose+&choosemsg=+Please+choose+one+&faxmsg=Fax+format+is+invalid&positivemsg=+must+be+positive&percentagemsg=+must+between+0+and+100&integermsg=+must+be+integer
    不知道为什么“projectAction2.do?method=submitUpdateProject&projectID=***”会变成上述的url?
    以下分别列出struts-config.xml,action form,action,jsp, validation.xml中与之相关部分的内容。struts-config:
    <form-bean name="projectActionForm" type="com.ProjectActionForm" /> <action name="projectActionForm" type="com.ProjectAction"   validate="false" parameter="method" path="/projectAction1">
      <forward name="update_project" path="/project_detail.jsp"/>
      <forward name="submit_project" path="/projectAction.do?method=initProjectList" redirect = "true"/>   
      <forward name="message" path="/message.jsp" />   
    </action>

    <action name="projectActionForm" type="com.ProjectAction" scope="session" validate="true" input="/project_detail.jsp" parameter="method" path="/projectAction2">
      <forward name="update_project" path="/project_detail.jsp"/>
      <forward name="submit_project" path="/projectAction.do?method=initProjectList" redirect = "true"/>   
      <forward name="message" path="/message.jsp" />   
    </action>
    action form:
    public class ProjectActionForm extends ValidatorForm {
            
        private String projectCode;
        private String projectName;
       
        public void setprojectCode(String projectCode) {
            this.projectCode = projectCode;
        }    public String getprojectCode() {
            return projectCode;
        }    public void setprojectName(String projectName) {
            this.projectName = projectName;
        }    public String getprojectName() {
            return projectName;
        }        public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
        }
    }action:
    public class ProjectAction extends DispatchAction {
       
        ......   
        
       
        public ActionForward initUpdateProject(
                ActionMapping mapping,
                ActionForm actionForm,
                HttpServletRequest request,
                HttpServletResponse response)
                throws Exception {
                                           
             ......             
                TO fill data from database to action form
                ......
                           
                return mapping.findForward("update_project"); 
        }
        
      
       
        public ActionForward submitUpdateProject(
                ActionMapping mapping,
                ActionForm actionForm,
                HttpServletRequest request,
                HttpServletResponse response)
                throws Exception {
                        
                ......
                TO get data from form bean
                ...... 
                
                return mapping.findForward("submit_project"); 
        }
             
           
        ......}project_detail.jsp:
    ......
    <html:form method="post" action="projectAction.do?method=submitUpdateProject">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>                                
                  <td width="62%">    
                   <input name="originalProjCode" type="hidden" class="box"  value="<%=strProjectCode%>">              
                   <html:text name="projectActionForm" property="projectCode" maxlength="50" />                               
                  </td>
                </tr>
                <tr> 
                  <td width="62%">
    <html:text name="projectActionForm" property="projectName" maxlength="255" />
                  </td>
                </tr>  
                                          
                <tr valign="bottom"> 
                  <td height="40" colspan="3" align="center">
                   <c:if test="${projectID!=null}">
                           <a href="javascript:modifyProject(document.forms[0],<%=strProjectID%>)"><img src="save.gif" ></a>                               
                   </c:if>
    <c:if test="${projectID==null}">
                           <a href="javascript:addProject(document.forms[0])"><img src="add.gif" ></a>
                   </c:if>
                  </td>
                </tr>
       </table> 
    </html:form>
    ......     
    <script language="Javascript">
    function modifyProject(frm,projectID)
    {
    frm.action="projectAction2.do?method=submitUpdateProject&projectID="+projectID;
    frm.submit();
    }

    function addCommonProject(frm)
    {
    frm.action="projectAction2.do?method=submitUpdateProject";
    frm.submit();
    }
    </script>
    ......validation.xml:
    <form    name="projectActionForm">          
     <field    property="projectCode"
                 depends="required">
                   <arg0 key="validate.projectCode"/>  
             </field>
     <field    property="projectName"
                 depends="required">
                   <arg0 key="validate.projectName"/>    
             </field>                               
    </form>
      

  2.   

    <html:form method="post" action="projectAction.do?method=submitUpdateProject">中的projectAction.do应该是projectAction1.do吧,你页面中的action和config中的path没对应好