我是用Jakarta通用库里的BeanUtils组件完成由表单bean自动添充java对象
另外一个程序是可以的,这个原来好象也可以,我不知道小不小心改过了哪里,现在不行了
出现错误的程序:jsp程序
<body>
<jsp:include page="html/top.htm"/><div id="main">
  <div id="ii_w">
    <div class="l"></div>
    <div class="m"><img src="images/b.gif" class="licon" alt="icon" />个人档</div>
    <div class="w_tbg"><a href="#"><img src="images/b.gif" class="lmore" alt="更多" /></a></div>
    <div class="r"></div>
<div class="ii_d">
<form action="/blog/updatePersonAction" method="post" id="form1" name="form1">
   
<input type="hidden" name="bornDate" value="">
  <input type="hidden" name="id" value="${person.id}">
    
      <div class="ii_all">
        <div class="ii_per_title">·个人资料</div>
        <table border="0" cellpadding="0" cellspacing="1" class="ii_per_table">
          <tr>
            <td id="ii_per_pic" rowspan="9"><div id="av"></div>
              <table width="140"  border="0" cellpadding="0" cellspacing="0">
          <tr>
                  <td><input name="imageURL" type="text" value="${person.imageURL}" onfocus="if (this.value=='http://') this.value=''" size="16" /></td>
                </tr>
                <tr>
                  <td align="center"><input name="button" type="button" onclick="previewAvatar()" value="预览" />
                    <input name="button" type="button" onclick="setAvatar()" value="确定" /></td>
                </tr>
                <tr>
                  <td>说明:用户可以选择任意图片作为形象照片。
                    </td>
                </tr>
              </table>
              <table width="140" border="0" cellspacing="0" cellpadding="0" >
                <tr>
                  <td></td>
                </tr>
              </table></td>
            <td class="ii_per_name">用户ID:</td>
            <td colspan="3" class="ii_per_info">${person.id}</td>
          </tr>
          <tr>
            <td class="ii_per_name">空间名称:</td>
            <td colspan="3" class="ii_per_info"><input name="blogName" value="${person.blogName}" type="text" size="40" maxlength="40" style="border:#9E9E9E 1px solid;size:12px" /></td>
          </tr>
          <tr>
            <td class="ii_per_name">昵 称:</td>
            <td colspan="3" class="ii_per_info"><input name="name" value="${person.name}" type="text" size="12" maxlength="12" />
            </td>
          </tr>
          <tr>
            <td class="ii_per_name">性 别:</td>
            <td colspan="3" class="ii_per_info"><input type="radio" name="sex" value="男" />
              男
              <input type="radio" name="sex" value="女" />
              女</td>
          </tr>
          <tr>
            <td class="ii_per_name">位 置:</td>
            <td colspan="3" class="ii_per_info"><input name="province" value="${person.province}" type="text" size="6" maxlength="8" />
              省(直辖市)
              <input name="city" value="${person.city}" type="text" size="6" maxlength="8" />
              市(地区)</td>
          </tr>
          <tr>
            <td class="ii_per_name">个人说明:</td>
            <td colspan="3" class="ii_per_info"><textarea name="description" cols="40" rows="5">${person.description}</textarea>
              (64个字以内) </td>
          </tr>
          <tr>
            <td class="ii_per_name">血 型:</td>
            <td class="ii_per_info"><select name="bloodType">
                <option value="-1">--</option>
                <option value="0">O型</option>
                <option value="1">A型</option>
                <option value="2">B型</option>
                <option value="3">AB型</option>
              </select>
            </td>

解决方案 »

  1.   

    <td class="ii_per_name">星 座:</td>
                <td class="ii_per_info">
                 <span id="constellation0"/>
                
                </td>
              </tr><input type="hidden" name="constellation">
              <tr>
    <td class="ii_per_name"> 生 日:</td>
    <td class="ii_per_info">
    <select size="1" name="year" onChange="dateChange()">

    </select>年
    <select size="1" name="month" onChange="dateChange();"></select>月
    <select size="1" name="day" onChange="dayChange()"></select>日
    </td>
                 <td class="ii_per_name">年 龄:</td>
                 <td class="ii_per_info"><span id="age0"/></td>
    </tr><input type="hidden" name="age">

            
            </table>
          </div>
       <div class="ii_all">
            <div class="ii_per_title">·模式设置</div>
            <table border="0" cellpadding="0" cellspacing="1" class="ii_per_table">
              <tr>
      <tr>
       <td class="ii_per_info">请选择进入个人空间时默认的模式</td>
     
              <tr>
                <td class="ii_per_info"><input type="radio" value="1" />
                 日志模式</td>
      </tr>
      <tr>
                <td class="ii_per_info"><input type="radio"  value="2" />
                相册模式</td>
      </tr>
            </table>
          </div>
         
          <div class="ii_all">
              <div class="ii_per_title">·个人签名档</div>
              <table border="0" cellpadding="0" cellspacing="1" class="ii_per_table">
                <tr>
                  <td class="ii_per_info"><span class="right">
                    <input name="usesign" type="checkbox" class="none" value="Y" checked="checked" />
                    使用签名档</span><span class="ubb">
                    <select name="selectface" onchange="ubbselectfont('face','document.all.selectface', 'form1.signature');">
                      <option  value="宋体" selected="selected">宋体</option>
                      <option  value="黒体">黒体</option>
                      <option  value="仿宋_GB2312">仿宋</option>
                      <option  value="隶书">隶书</option>
                      <option  value="楷体_GB2312">楷体</option>
                      <option  value="Times New Roman">Times New Roman</option>
                      <option  value="Arial Black">Arial Black</option>
                      <option value="Verdana">Verdana</option>
                      <option value="Helvetica">Helvetica</option>
                    </select>
                    <select name="selectsize" onchange="ubbselectfont('size','document.all.selectsize', 'form1.signature');">
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                      <option value="6">6</option>
                    </select>
                    <a href="javascript:ubbfont('B', form1.signature)"><img src="images/bb_bold.gif" alt="插入粗体文本" /></a><a href="javascript:ubbfont('I', form1.signature)"><img src="images/bb_italicize.gif" alt="插入斜体文本" /></a><a href="javascript:ubbfont('U', form1.signature)"><img src="images/bb_underline.gif" alt="插入下划线" /></a><a href="javascript:ubbcolorm(form1.signature)"><img src="images/bb_color.gif" alt="字体颜色" /></a><a href="javascript:ubbfont('M', form1.signature)"><img src="images/bb_center.gif" alt="居中" /></a><a href="javascript:ubbfont('R', form1.signature)"><img src="images/bb_right.gif" alt="居右" /></a></span></td>
                </tr>
                <tr>
                  <td class="ii_per_info"><textarea name="signature" cols="65" rows="5" class="text" id="textarea1">${person.signature}</textarea>
                    <img src="images/b.gif" class="submit" alt="提交" onClick="SubmitFormValue()" /><img src="images/b.gif" class="cancel" alt="取消" onClick="resetWeb();"/> </td>
                </tr>
              </table>
          </div>
          <br />
          <div class="clear"></div>
          
    </form>
        </div>
      </div>
    </div>
    <script type="text/JavaScript">framebottom()</script>
    <script>doFillInfo()</script>
    <script>init()</script>
    </body>
    </html>
      

  2.   

    对应的servlet ,updatePersonAction.java
     public void doPost(HttpServletRequest request,
                                   HttpServletResponse response)
                      throws ServletException,IOException {
         
          response.setContentType("text/html;charset=gb2312");
          Content content = new Content();
          
          BeanUtilities.populateBean(content,request);
         
          
          PrintWriter out = response.getWriter();
          
          if(content.isValid()){
          try{ 
          ContentDAO contentDAO = new ContentDAO();
          contentDAO.update(content);
          response.sendRedirect("/blog/viewDiaryAction?diaryId="+content.getId());
          }catch(IllegalStateException e){
           out.println(e);
           e.printStackTrace();
        }catch(RuntimeException e){
           out.println(e);
        }catch(Exception e){
           out.println(e);
            e.printStackTrace();
        }
         
      }
      

  3.   

    对应的servlet  ,updatePersonAction.java  上面的那个servlet发错了,是下面的,不过person类的各个属性的值都是初始值,null和0
    public void doPost(HttpServletRequest request,
                                   HttpServletResponse response)
                      throws ServletException,IOException {
         
          response.setContentType("text/html;charset=gb2312");
          Person person = new Person();
          
          BeanUtilities.populateBean(person,request);
           
          
          PrintWriter out = response.getWriter();
         
          out.println(person.getBornDate());
          out.println(person.getName());
          out.println(person.getBlogName());
          out.println(person.getId());
          out.println(person.getDescription());
            
    }