indexForm中有内容吗?如果能正常提交,应该有内容。
没有的话,可能是form的问题,你把form的代码,还有struts-config.xml都帖出来。

解决方案 »

  1.   

    请问你的IndexForm中有没有相应的字段定义?
    还有页面最好吧logic写道form中
      

  2.   

    struts-config.xml代码如下:谢谢两位了!   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="indexForm" type="org.mxg.struts.form.IndexForm" />  </form-beans>
      <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="indexForm"
          input="/add.jsp"
          name="indexForm"
          path="/index"
          scope="request"
          type="org.mxg.struts.action.IndexAction" >
          <forward name="ShowAll" path="/findAll.do"></forward>
          </action>
        <action
          attribute="indexForm"
          name="indexForm"
          path="/findAll"
          scope="request"
          type="org.mxg.struts.action.FindAllAction" >
          <forward name="showall" path="/ShowAll.jsp"></forward>
          </action>
        <action
          attribute="indexForm"
          name="indexForm"
          path="/prepareUpdate"
          scope="request"
          type="org.mxg.struts.action.PrepareUpdateAction" >
          <forward name="prepare" path="/prepare.jsp"></forward>
          </action>
        <action
          attribute="indexForm"
          input="/update.jsp"
          name="indexForm"
          path="/update"
          scope="request"
          type="org.mxg.struts.action.UpdateAction" >
        <forward name="ShowAll" path="/findAll.do"></forward>
          </action>
      </action-mappings>  <message-resources parameter="org.mxg.struts.ApplicationResources" />
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
      </plug-in>
    </struts-config>
      

  3.   

     我第一次添加用户时能够得到表单的能用!然后进行更新!从数据库读出来再更新时就得不到了!我就纳闷了!找了一下午就是空指针错误!后来经过层层围攻才找到那里没有得到更新后的数据!希望大家帮忙!
     indexForm.java中的内容如下:其中id是自己加的!
        /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package org.mxg.struts.form;import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.validator.ValidatorForm;/** 
     * MyEclipse Struts
     * Creation date: 10-09-2007
     * 
     * XDoclet definition:
     * @struts.form name="indexForm"
     */
    public class IndexForm extends ValidatorForm {
    /*
     * Generated fields
     */ /** userName property */
    private String userName; /** userPwd property */
    private String userPwd;
    private Integer id; /*
     * Generated Methods
     */ public Integer getId() {
    return id;
    } public void setId(Integer id) {
    this.id = id;
    } /** 
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    // TODO Auto-generated method stub
    return null;
    } /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // TODO Auto-generated method stub
    } /** 
     * Returns the userName.
     * @return String
     */
    public String getUserName() {
    return userName;
    } /** 
     * Set the userName.
     * @param userName The userName to set
     */
    public void setUserName(String userName) {
    this.userName = userName;
    } /** 
     * Returns the userPwd.
     * @return String
     */
    public String getUserPwd() {
    return userPwd;
    } /** 
     * Set the userPwd.
     * @param userPwd The userPwd to set
     */
    public void setUserPwd(String userPwd) {
    this.userPwd = userPwd;
    }
    }
      

  4.   

    根据你的Form那么你的jsp做如下修改<logic:present  scope="request" name="user" > 
    <html:form action="/update.do" 
    onsubmit="return validateIndexForm(this)" > 
    ID编号: <html:text name="user" property="id" / > <br/ > 
    用户名:  <html:text name="user" property="userName" / > 
    <br/ > 
    密码 :  <html:text name="user" property="userPwd" / > 
    <br / > 
    <html:submit value="提交" / > 
    <html:reset value="重置" / > 
    </html:form > 
    </logic:present > 
      

  5.   

    注意大小写
    userName和username在提交给ActionForm的时候,是不一样的。
      

  6.   

    你有没有提供VlidatorForm的.xml文件呀.
    有的话检查一下里的验证~~~~~~
      

  7.   

    可是我vo里是这么写的呀:
      如果改了的话就找不到userid和username,userpwd了!
      package org.mxg.vo;
      ID编号: <html:text name="user" property="id" / > <br/ > 
      用户名:  <html:text name="user" property="userName" / > 
      <br/ > 
      密码 :  <html:text name="user" property="userPwd" / > 
      上面红色的是不是应该和持久化类一致!不然的话应该这样一改就得不到了呀!
    /**
     * User generated by MyEclipse - Hibernate Tools
     */public class User  implements java.io.Serializable {
        // Fields         private Integer userid;
         private String username;
         private String userpwd;
        // Constructors    /** default constructor */
        public User() {
        }    
        /** full constructor */
        public User(String username, String userpwd) {
            this.username = username;
            this.userpwd = userpwd;
        }   
        // Property accessors    public Integer getUserid() {
            return this.userid;
        }
        
        public void setUserid(Integer userid) {
            this.userid = userid;
        }    public String getUsername() {
            return this.username;
        }
        
        public void setUsername(String username) {
            this.username = username;
        }    public String getUserpwd() {
            return this.userpwd;
        }
        
        public void setUserpwd(String userpwd) {
            this.userpwd = userpwd;
        }
    }
      

  8.   

    IndexForm :
    /** userName property */ 
    private String userName; 
    private String userPwd; 
    private Integer id; prepare.jsp页面: 
    ID编号: <html:text name="user" property="userid" / > <br/ > 
    用户名:  <html:text name="user" property="username" / > <br/ > 
    密码 :  <html:text name="user" property="userpwd" / > 
    如果不是这些不一致,那你去找god去吧。
      

  9.   

    可是我vo里是这么写的呀: 
      如果改了的话就找不到userid和username,userpwd了! 
      package org.mxg.vo; 
      ID编号:  <html:text name="user" property="id" /  >  <br/  >  
      用户名:   <html:text name="user" property="userName" /  >  
       <br/  >  
      密码 :   <html:text name="user" property="userPwd" /  >  
      上面红色的是不是应该和持久化类一致!不然的话应该这样一改就得不到了呀! 

    红色的应该和FormBean里面一样
      

  10.   

    你写的红色的应该是和持久化类一致。表单在向action传递数据时才会把数据组装到actionform中
      

  11.   

    和IndexForm 里的也要一致,你看那些自动生成的就知道了,不一致他也找不到的.就像你不用struts时,
    要在sevlet中获取表单提交的数据一样,怎么能不一致呢?
      

  12.   

    jspd页面的属性名称和form中的属性名称不一致,action没有正确的填充form所以是空指针异常
      

  13.   

     
       用struts的标签真是头痛呀!我实在是不知道怎么办了!改变策略了!我用下面的代码实现了!
         <body>
    <center>
    <logic:present scope="request" name="user">
    <html:form action="/update" onsubmit="return validateIndexForm(this)">
    ID编号:<input type="text" name="id" value="${user.userid }"/>
    <br />
    用户名:<input type="text" name="username" value="${user.username }"/>
    <br />
    密码 : <input type="text" name="userpwd" value="${user.userpwd }"/>
    <br />
    <html:submit value="提交" />
    <html:reset value="重置" />
    </html:form>
    <html:javascript formName="indexForm" /> </logic:present>
    </center>
    </body>
         然后在action里用getParameter("")方法一个一个的得到的!然后再写入了数据库!更新是实现了!不过表单的验证又失效了!是不是把form写在<logic:precent>里验证就不管用了呢!有人遇到过这样的问题吗!谢谢大家的帮助!
      
      

  14.   

    int id = indexForm.getId(); 
    你的这个属性名 是userid  还是 Id
      

  15.   

    欢迎加入本人的QQ群,群号5586686,身份认证输入如:JAVA、JSP、STRUTS等都可以,非软件开发人员勿加,谢谢合作!