我有三个bean类Animal,Dog和Pug(名称改为示例)
class Animal {
List <Dog> dogList;
}
class Dog {
price;
List<Pug> PugList;
}
class Pug {
color;
weight;
}
下面的是jsp页面:
<c:forEach var="animal" items="${Animal.dogList}" varStatus="outerLoop">
<c:forEach var="dog" items="${animal.PugList}" varStatus="innerLoop">
<tr>
<td>
<label id="pugColorLabel">color :</label>
<input id="colorid${innerloop.index +1}" name="color" value="${dog.color}" />
<input id="weightid${innerloop.index +1}" name="weight" value="${dog.weight}" />
</td>
</tr>
</c:forEach>
<td>
<label id="dogPriceLabel">price :</label>
<input id="dogPriceid${outerLoop.index +1}" name="price" value="${animal.price}"/>
</td>
</c:forEach>
我有一个页面,我必须显示所有哈巴狗的颜色和重量,包括狗的价格和7个狗对象(静态数字)和1-5个狗对象将只有一个哈巴狗对象(静态数字) )但是第6和第7只狗会有 每个两个哈巴狗(再次是静态数字)。
这是我的问题:
所以<c:forEach>
逻辑工作正常,但是id不是我想要的方式,我希望所有的哈巴狗都不同,以便我可以通过id获取值。
上面的代码片段总是会给我pug属性 - colorid和weightid为1(colorid1和weightid1)因为1-5 dog实例只有一个pug实例。
并且第5和第6只狗的实例每个都有两个哈巴狗,所以它们也应该给我不同的ID,以便我可以获取它们的值。
答案 0 :(得分:1)
使用outerloop和innerloop制作唯一ID,您可以使用colorId${outerloop.index+1}{innerloop.index+1}
现在你将获得id,colorId11,colorId21 ... colorId61,colorId62 ..等
答案 1 :(得分:0)
只是为了一个简单的代码,如果你不想获得索引[0],你可以使用de property&#39; count &# 39 ;,制作&#39; innerLoop.count&#39;而是&#39; innerLoop.index&#39;例如。 属性 index 在[0]中开始,属性 count 在[1]中开始。
<input id="colorid${innerloop.count}" name="color" value="${dog.color}"/>
<input id="weightid${innerloop.count}" name="weight" value="${dog.weight}"/>