关于claim_voucher_update.jsp的问题二

关于claim_voucher_update.jsp的问题二

以下是页面中的foreach代码片段,有两个问题:

1、 这句代码<form:select path="items[${sta.index}].item" cssClass="gui-input" items="${items}"/>中的两个items分别指代什么?

2、为什么不在<c:forEach items="${info.items}" varStatus="sta">中设置一个var变量(如:var=“item”)来代替下面的”items[${sta.index}]”,这样可读性很差?

3、这句代码”items[${sta.index}]”不需要加info前缀吗,程序如何设别?”info.items[${sta.index}]”



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

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

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

2回答
好帮手慕柯南 2020-03-19 09:57:38

同学你好!

  1. items对象,后台传的参数

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

  2. 在后台的参数中items就是一个集合。如果前端的name不是集合的形式,数据是无法正常保存的。这里是相互对应的

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

  3. 后台的List(items)就是和这里的items[]对应的

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

好帮手慕柯南 2020-03-18 15:11:56

同学你好!

  1.  这句代码<form:select path="items[${sta.index}].item" cssClass="gui-input" items="${items}"/>中的两个items分别指代什么?

    都是指items对象。

  2. 为什么不在<c:forEach items="${info.items}" varStatus="sta">中设置一个var变量(如:var=“item”)来代替下面的”items[${sta.index}]”,这样可读性很差?

    如果设置了var,不使用下标。name就无法是数组的形式了。这样就无法传递多个值了

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

  3. ${info.items}是获取items这个元素,输出的结果是一个对象

    items[${sta.index}].item是获取items中属性的值。后台并没有一个数据是info.items[${sta.index}],这种形式的,所以这里不需要加info。

    这里的格式也是和后台对应的

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


  • 提问者 慕沐8221787 #1
    你这个回答让人无法理解, 1、第一个问题,都是什么items对象,我问的就是这个items对象具体指什么; 2、第二个问题,明明是集合,怎么又扯到数据上去了呢; 3、后台不是也没有items[]这种形式吗? 希望解答能清晰准确到位,表述要逻辑清楚、内容详细。
    2020-03-18 20:24:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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