我复制了老师的源代码页面都解决不了

我复制了老师的源代码页面都解决不了

http://img1.sycdn.imooc.com//climg/5db2c3a2096279ee19201080.jpg

<%@ 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"/>

<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 mw1000 center-block" style="padding-bottom: 175px;">
           <div class="panel heading-border">
               <form:form id="admin-form" name="addForm" action="/claim_voucher/update" modelAttribute="info">
                   <form:hidden path="claimVoucher.id"/>
                   <div class="panel-body bg-light">
                       <div class="section-divider mt20 mb40">
                           <span> 基本信息 </span>
                       </div>
                       <div class="section">
                           <label for="claimVoucher.cause" class="field prepend-icon">
                               <form:input path="claimVoucher.cause" cssClass="gui-input" placeholder="事由..."/>
                               <label for="claimVoucher.cause" class="field-icon">
                                   <i class="fa fa-lock"></i>
                               </label>
                           </label>
                       </div>
                       <div class="section-divider mt20 mb40">
                           <span> 费用明细 </span>
                       </div>
                       <div class="section row" id="items">
                           <c:forEach items="${info.items}" varStatus="sta">
                               <div>
                                   <div class="col-md-3">
                                       <label for="items[${sta.index}].item" class="field prepend-icon">
                                           <form:hidden path="items[${sta.index}].id"/>
                                           <form:hidden path="items[${sta.index}].claimVoucherId"/>
                                           <form:select path="items[${sta.index}].item" cssClass="gui-input" placeholder="花销类型..." items="${items}"/>
                                       </label>
                                   </div>
                                   <div class="col-md-3">
                                       <label for="items[${sta.index}].amount" class="field prepend-icon">
                                           <form:input path="items[${sta.index}].amount" cssClass="gui-input money" placeholder="金额..."/>
                                           <label for="items[${sta.index}].amount" class="field-icon">
                                               <i class="fa fa-lock"></i>
                                           </label>
                                       </label>
                                   </div>
                                   <div class="col-md-5">
                                       <label for="items[${sta.index}].comment" class="field prepend-icon">
                                           <form:input path="items[${sta.index}].comment" cssClass="gui-input" placeholder="备注..." />
                                           <label for="items[${sta.index}].comment" class="field-icon">
                                               <i class="fa fa-lock"></i>
                                           </label>
                                       </label>
                                   </div>
                                   <div class="col-md-1" style="text-align:right;">
                                       <button type="button" class="button"> X </button>
                                   </div>
                               </div>
                           </c:forEach>
                       </div>
                       <div class="section row">
                           <div class="col-md-3">
                               <label for="totalMoney" class="field prepend-icon">
                                   <form:input id="totalMoney" path="claimVoucher.totalAmount" cssClass="gui-input" placeholder="总金额..." readonly="true"/>
                                   <label for="totalMoney" class="field-icon">
                                       <i class="fa fa-user"></i>
                                   </label>
                               </label>
                           </div>
                           <div class="section" style="text-align:right;">
                               <div class="col-md-9">
                                   <button type="button" class="button" id="addItemButton"> + </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"/>



视频中页面也有很多错误在items[${sta.index}].id
这些代码中,首先这个sta.index的用法不太明白,然后这个报错为什么老师不讲,然后还运行成功了,好难

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 慕哥3346605 2019-10-25 19:15:01
好帮手慕柯南 2019-10-25 18:37:07

同学你好!

  1. 同学这里应该是数据显示的问题,首先同学在后台打断点看后台的info中的items是否获取到数据了

    http://img1.sycdn.imooc.com//climg/5db2cf18097ea59e09840630.jpg

  2. 如果获取到了,检查一下这里的属性,与页面显示写的是否一样。

  3. 老师视频中报错,是由于idea校验的原因,不是错误~

  4. 在jstl进行循环时,var中的值中有一个属性index,就是当前这个元素的索引,比如:第一个循环时为0,第二次为1。。。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕哥3346605 #1
    老师,通过 List<ClaimVoucherItem> iteams = claimVouncherBiz.findIteam(id); 这个获取的是null,用您的断点检测出来的
    2019-10-25 19:12:23
  • 提问者 慕哥3346605 #2
    public void save(ClaimVoucher claimVoucher, List<ClaimVoucherItem> items) { claimVoucher.setCreateTime(new Date()); claimVoucher.setNextDealSn(claimVoucher.getCreateSn()); claimVoucher.setStatus(Contant.CLAIMVOUCHER_CREATED); claimVoucherDao.insert(claimVoucher); for(ClaimVoucherItem item:items){ item.setClaimVoucherId(claimVoucher.getId()); claimVoucherItemDao.insert(item); } } 老师在这个方法中 item.setClaimVoucherId(claimVoucher.getId());这个句子是不是有问题,毕竟传进来的claimVoucher还没有插入数据库,所有没有id,所以这里设置的id其实是null
    2019-10-25 19:49:24
  • 提问者 慕哥3346605 #3
    老师,你好,麻烦了,我知道自己错在哪里了,这里 claimVoucherDao.insert(claimVoucher);插入之后会自动将生成的id返回给原对象,但是我的xml文件中,keyProperty="id"这个属性设置成了 keyColumn="id",所以没有返回id。虽然弄了很久,感觉自己对这种断点调试有了进步还是可以的哈哈哈
    2019-10-25 20:02:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师