继上一问题源码

来源:5-5 修改报销单

慕村8269932

2018-08-01 14:37:12

Person_update文件Person_update.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<jsp:include page="top.jsp"/>

<style type="text/css">
   div{
       text-align:center;/** 设置水平方向居中 */
       vertical-align:middle/** 设置垂直方向居中 */
   }
</style>
<section id="content" class="table-layout animated fadeIn">
   <div class="tray tray-center">
       <div class="content-header">
           <h2> 修改人员信息 </h2>
           <p class="lead"></p>
       </div>
       <div class="admin-form theme-primary mw1200 center-block" style="padding-bottom: 100px;">
           <div class="panel heading-border">
               <form:form  id="admin-form" name="addForm" action="/person/update" modelAttribute="info"   >
                   <form:hidden path="person.id"/><%--以隐藏域的方式传递人员id--%>
                   <div class="panel-body bg-light">
                       <div class="section-divider mt20 mb40">
                           <span>基本信息</span>
                       </div>
                       <div class="section row">
                           <div class = "col-md-1"><label for ="person.sn">人员编号</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.sn"  value="" cssClass="gui-input"  />
                           </div>
                           <div class = "col-md-1"><label for="person.name">姓名</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.name"  value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.sex">性别</label></div>
                           <div  class = "col-md-2">
                               <form:select path="person.sex" items="${slist}"  cssClass="gui-input" ></form:select>
                           </div>
                           <div class = "col-md-1"><label for="person.nation">民族</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.nation"  value="" cssClass="gui-input"/>
                           </div>
                       </div>
                       <div class="section row">
                           <div class = "col-md-1"><label for="person.birthdate">出生日期</label></div>
                           <div  class = "col-md-2">
                               <form:input  type="date" path="person.birthdate" value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.idcard">身份证号</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.idcard"  value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.martial">婚姻状况</label></div>
                           <div  class = "col-md-2">
                               <form:select path="person.martial" items="${mlist}" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.political">政治面貌</label></div>
                           <div  class = "col-md-2">
                               <form:select path="person.political" items="${plist}" cssClass="gui-input"/>
                           </div>
                       </div>
                       <div class="section row">
                           <div class = "col-md-1"><label for="person.education">学历</label></div>
                           <div  class = "col-md-2">
                               <form:select path="person.education" value=""  items="${elist}" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.household">户口性质</label></div>
                           <div  class = "col-md-2">
                               <form:select path="person.household" value=""  items="${hlist}"  cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.domicile">户口所在地</label></div>
                           <div  class = "col-md-2">
                               <form:input path="person.domicile" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.htelephone">家庭电话</label></div>
                           <div  class = "col-md-2">
                               <form:input path="person.htelephone" cssClass="gui-input"/>
                           </div>
                       </div>
                       <div class="section row">
                           <div class = "col-md-1"><label for="person.address">现住址</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.address"  value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.telephone">联系电话</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.telephone"  value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.email">个人邮箱</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.email" value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.jobtitle">职称</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.jobtitle"  value="" cssClass="gui-input"/>
                           </div>
                       </div>
                       <div class="section row">
                           <div class = "col-md-1"><label for="person.workingyears">工作年限</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.workingyears" value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.contact">紧急联系人</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.contact" value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.ctelephone">联系人电话</label></div>
                           <div  class = "col-md-2">
                               <form:input  path="person.ctelephone" value="" cssClass="gui-input"/>
                           </div>
                           <div class = "col-md-1"><label for="person.finalunit">最后任职单位</label></div>
                           <div  class = "col-md-2">
                               <form:input path="person.finalunit" value="" cssClass="gui-input"/>
                           </div>
                       </div>

                       <div class="section-divider mt20 mb40">
                           <span> 教育经历 </span>
                       </div>
                       <div class="section row"  >
                           <div class = "col-md-2"><label>起始时间</label></div>
                           <div class = "col-md-2"><label>终止时间</label></div>
                           <div class = "col-md-2"><label>学校名称</label></div>
                           <div class = "col-md-2"><label>学院名称</label></div>
                           <div class = "col-md-2"><label>专业名称</label></div>
                           <div class = "col-md-1"><label>海外经历</label></div>
                           <div class = "col-md-1"><label>删除</label></div>
                       </div>
                      <div class="section row"  id="educations">
                        <c:forEach items="${info.educations}" varStatus="edu">
                         <div>
                               <div class="col-md-2">
                                  <label for="educations[${edu.index}].estartTime" class="field">
                                      <form:hidden path="educations[${edu.index}].id"/>
                                      <form:hidden path="educations[${edu.index}].personId"/>
                                      <form:input type="date" path="educations[${edu.index}].estartTime" cssClass="gui-input" />

                                   </label>
                               </div>

                             <div class="col-md-2">
                                 <label for="educations[${edu.index}].efinalTime" class="field">
                                    <form:input type ="date" path="educations[${edu.index}].efinalTime" cssClass="gui-input"/>
                                 </label>
                             </div>
                             <div class="col-md-2">
                                 <label for="educations[${edu.index}].sname" class="field">
                                     <form:input path="educations[${edu.index}].sname" cssClass="gui-input"/>
                                 </label>
                             </div>
                             <div class="col-md-2">
                                 <label for="educations[${edu.index}].college" class="field">
                                     <form:input path="educations[${edu.index}].college" cssClass="gui-input" />
                                 </label>
                             </div>
                             <div class="col-md-2">
                                 <label for="educations[${edu.index}].major" >
                                     <form:input path="educations[${edu.index}].major" cssClass="gui-input" />

                                 </label>
                             </div>
                             <div class="col-md-1">
                             <label for="educations[${edu.index}].overseas" class="field ">
                                 <form:select path="educations[${edu.index}].overseas" cssClass="gui-input"  items="${olist}" />
                             </label>
                             </div>
                             <div class="col-md-1"><button type="button" class="button"><i class="fa fa-trash"></i></button></div>
                       </div>
                           </c:forEach>
                     </div>
                       <div class="section row">
                           <div class="col-md-11"></div>
                           <div class="section" >
                               <div class="col-md-1" >
                                   <button type="button" class="button" id="addEducationButton"> + </button>
                               </div>
                           </div>
                       </div>

                       <div class="section-divider mt20 mb40">
                                 <span> 工作经历 </span>
                       </div>
                       <div class="section row"  >
                           <div class = "col-md-2"><label>起始时间</label></div>
                           <div class = "col-md-2"><label>终止时间</label></div>
                           <div class = "col-md-2"><label>单位名称</label></div>
                           <div class = "col-md-2"><label>岗位名称</label></div>
                           <div class = "col-md-2"><label>单位地址</label></div>
                           <div class = "col-md-1"></div>
                           <div class = "col-md-1"><label>删除</label></div>
                       </div>
                       <div class="section row"  id="works">
                           <c:forEach items="${info.works}" varStatus="wor">
                               <div>
                                   <div class="col-md-2">
                                       <label for="works[${wor.index}].wstartTime" class="field">
                                           <form:hidden path="works[${wor.index}].id"/>
                                           <form:hidden path="works[${wor.index}].personId"/>
                                           <form:input type="date"  path="works[${wor.index}].wstartTime" cssClass="gui-input" />
                                       </label>
                                   </div>

                                   <div class="col-md-2">
                                       <label for="works[${wor.index}].wfinalTime" class="field">
                                           <form:input type="date"  path="works[${wor.index}].wfinalTime" cssClass="gui-input"/>
                                       </label>
                                   </div>
                                   <div class="col-md-2">
                                       <label for="works[${wor.index}].unitname" class="field">
                                           <form:input path="works[${wor.index}].unitname" cssClass="gui-input"/>
                                       </label>
                                   </div>
                                   <div class="col-md-2">
                                       <label for="works[${wor.index}].wpost" class="field">
                                           <form:input path="works[${wor.index}].wpost" cssClass="gui-input" />
                                       </label>
                                   </div>
                                   <div class="col-md-2">
                                       <label for="works[${wor.index}].waddress" >
                                                <form:input path="works[${wor.index}].waddress" cssClass="gui-input" />

                                       </label>
                                   </div>
                                   <div class="col-md-1"> </div>
                                   <div class="col-md-1"><button type="button" class="button"><i class="fa fa-trash"></i></button></div>
                               </div>
                           </c:forEach>
                       </div>
                       <div class="section row">
                                    <div class="col-md-11"></div>
                                    <div class="section" >
                                        <div class="col-md-1" >
                                            <button type="button" class="button" id="addWorkButton"> + </button>
                                        </div>
                                    </div>
                                </div>

                             <div class="section-divider mt20 mb40">
                                 <span> 职称/资格证书 </span>
                             </div>
                             <div class="section row"  >
                                 <div class = "col-md-2"><label>职称/资格证书名称</label></div>
                                 <div class = "col-md-2"><label>等级</label></div>
                                 <div class = "col-md-2"><label>获取时间</label></div>
                                 <div class = "col-md-2"><label>备注</label></div>
                                 <div class = "col-md-3"></div>
                                 <div class = "col-md-1"><label>删除</label></div>
                             </div>
                             <div class="section row"  id="titles">
                                 <c:forEach items="${info.titles}" varStatus="tit">
                                 <div>
                                     <div class="col-md-2">
                                         <label for="titles[${tit.index}].ttitle" class="field">
                                           <form:hidden path="titles[${tit.index}].id"/>
                                             <form:hidden path="titles[${tit.index}].personId"/>
                                             <form:input path="titles[${tit.index}].ttitle" cssClass="gui-input"/>
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="titles[${tit.index}].rank" class="field">
                                             <form:input path="titles[${tit.index}].rank" cssClass="gui-input" />
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="titles[${tit.index}].gettime" class="field">
                                             <form:input type="date"  path="titles[${tit.index}].gettime" cssClass="gui-input"/>
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="titles[${tit.index}].remark" >
                                             <form:input path="titles[${tit.index}].remark" cssClass="gui-input" />
                                         </label>
                                     </div>
                                     <div class="col-md-3"></div>
                                     <div class="col-md-1"><button type="button" class="button"><i class="fa fa-trash"></i></button></div>
                                 </div>
                                 </c:forEach>
                             </div>
                             <div class="section row">
                                 <div class="col-md-11"></div>
                                 <div class="section" >
                                     <div class="col-md-1" >
                                         <button type="button" class="button" id="addTitleButton"> + </button>
                                     </div>
                                 </div>
                             </div>

                             <div class="section-divider mt20 mb40">
                                 <span> 家庭主要成员 </span>
                             </div>
                             <div class="section row"  >
                                 <div class = "col-md-2"><label>称谓</label></div>
                                 <div class = "col-md-2"><label>姓名</label></div>
                                 <div class = "col-md-2"><label>工作单位</label></div>
                                 <div class = "col-md-2"><label>居住地址</label></div>
                                 <div class = "col-md-3"></div>
                                 <div class = "col-md-1"><label>删除</label></div>
                             </div>
                             <div class="section row"  id="families">
                                 <c:forEach items="${info.families}" varStatus="fam">
                                 <div>
                                     <div class="col-md-2">
                                         <label for="families[${fam.index}].appellation" class="field">
                                             <form:hidden path="families[${fam.index}].id"/>
                                             <form:hidden path="families[${fam.index}].personId"/>
                                             <form:select path="families[${fam.index}].appellation" cssClass="gui-input" items="${alist}"/>
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="families[${fam.index}].fname" class="field">
                                             <form:input path="families[${fam.index}].fname" cssClass="gui-input" />
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="families[${fam.index}].funit" class="field">
                                             <form:input  path="families[${fam.index}].funit" cssClass="gui-input"/>
                                         </label>
                                     </div>
                                     <div class="col-md-2">
                                         <label for="families[${fam.index}].faddress" >
                                             <form:input path="families[${fam.index}].faddress" cssClass="gui-input" />
                                         </label>
                                     </div>
                                     <div class="col-md-3"></div>
                                     <div class="col-md-1"><button type="button" class="button"><i class="fa fa-trash"></i></button></div>
                                 </div>
                                 </c:forEach>
                             </div>
                       <div class="section row">
                           <div class="col-md-11"></div>
                           <div class="section" >
                               <div class="col-md-1" >
                                   <button type="button" class="button" id="addFamilyButton"> + </button>
                               </div>
                           </div>
                       </div>
                       <div class="panel-footer text-right">
                           <button type="submit" class="button"> 保存 </button>
                           <button type="button" class="button" onclick="javascript:window.history.go(-1);"> 返回 </button>
                       </div>
                   </div>
               </form:form>
           </div>
       </div>
   </div>
</section>
<jsp:include page="bottom.jsp"/>



控制台文件PersonController.java
package com.ims.info.controller;

import com.ims.info.biz.PersonBiz;
import com.ims.info.dto.PersonInfo;
import com.ims.info.global.Contant;
import org.apache.log4j.Logger;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

@Controller("personController")
@RequestMapping("/person")

public class PersonController{
   private Logger log = Logger.getLogger ( PersonController.class);
   /*@InitBinder
   public void InitBinder(WebDataBinder binder){
       DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
       dateFormat.setLenient(true);
       binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
   }*/
   @Resource
   private PersonBiz personBiz;
   @RequestMapping("/list")
   public String list(Map<String,Object> map){
       map.put ( "list",personBiz.getAll () );
       return "person_list";
   }

   @RequestMapping("/to_add")
   public String toAdd(Map<String,Object> map){
       map.put("info",new PersonInfo ());
       map.put ( "slist", Contant.getSexs () );
       map.put ( "mlist", Contant.getMartials () );
       map.put ( "plist", Contant.getPoliticals ());
       map.put ( "elist", Contant.getEducations ());
       map.put ( "hlist", Contant.getHouseholds () );
       map.put ( "olist", Contant.getOverSeas ());
       map.put ( "alist",Contant.getAppellations () );
       return "person_add";
   }
   @RequestMapping("/add")
   public String add(PersonInfo info){
       personBiz.save ( info.getPerson (),info.getEducations (),
               info.getWorks (), info.getTitles (),info.getFamilies ());
       return "redirect:list";
   }
   @RequestMapping("/detail")
   public String detail(Integer id,Map<String,Object>map){
       map.put("person",personBiz.get ( id ));
       map.put("educations",personBiz.getEducations ( id));
       map.put ( "works",personBiz.getWorks ( id ) );
       map.put ( "titles",personBiz.getTitles ( id ) );
       map.put ( "families",personBiz.getFamilies ( id ) );
       return "person_detail";
   }

   @RequestMapping(value="/to_update",params = "id")
   public String toUpdate(Integer id,Map<String,Object> map){
       PersonInfo info = new PersonInfo ();
       info.setPerson ( personBiz.get ( id ) );
       info.setEducations ( personBiz.getEducations ( id ) );
       info.setWorks ( personBiz.getWorks ( id ) );
       info.setTitles ( personBiz.getTitles ( id ) );
       info.setFamilies ( personBiz.getFamilies ( id ) );
       map.put ( "slist", Contant.getSexs () );
       map.put ( "mlist", Contant.getMartials () );
       map.put ( "plist", Contant.getPoliticals ());
       map.put ( "elist", Contant.getEducations ());
       map.put ( "hlist", Contant.getHouseholds () );
       map.put ( "olist", Contant.getOverSeas ());
       map.put ( "alist",Contant.getAppellations () );
       map.put ( "info",info );
       return "person_update";
   }
   @RequestMapping("/update")
   public String update( PersonInfo info){
      personBiz.update ( info.getPerson (),info.getEducations (),
               info.getWorks (),info.getTitles (),info.getFamilies ());
       return "redirect:detail";
   }
   @RequestMapping(value = "/remove",params = "id")
   public String remove( Integer id){
       personBiz.remove ( id );
       return "redirect:list";
   }

}



写回答

1回答

一叶知秋519

2018-08-01

400错误的产生原因:前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;

错误排查:

建议同学一部分代码一部分代码的检查,例如:只保留页面中基本信息的相关内容,即需要封装到Person类中的属性信息,提交Controller,看是否出现400,如果没有出现400,证明这个类中的属性封装没有问题,,同学可以仿照这种思路一个类一个类的进行排查。

同学首先尝试一下排查错误,如果还有问题,可以再次提问~

祝学习愉快!

0

0 学习 · 4317 问题

查看课程