jsp用el表达式遍历集合的时候,我想在一行只显示 两条数据,这个怎么实现,求解

jsp用el表达式遍历集合的时候,我想在一行只显示 两条数据,这个怎么实现,求解,第1张

这个简单啊

<c:forEach items="${book'}" var="b" varStatus="i">

<span >${bname }</span>

<c:if test="${(iindex+1)%2==0 }">

<p>

</c:if>

</c:forEach>

具体的自己改下

在EL中,方括号运算符用来检索数组和集合的元素。对于实现 javautilMap 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。

在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${map['key']} 返回与 map标识符所引用的 Map 中的 "key" 键相关联的值。

当forEach 的items属性中的表达式的值是javautilMap时,则var中命名的变量的类型就是 javautilMapEntry。这时var=entry的话,用表达式${entrykey}取得键名。用表达${entryvalue}得到每个entry的值。这是因为javautilMapEntry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定。

<%

Map<String,String> map2 = new HashMap();

map2put("a","hello world");

map2put("b","this is map");

requestsetAttribute("map2",map2);

%>

<br>

键值对遍历 <br>

<c:forEach var="item" items="${map2}">

${itemkey} > ${itemvalue} <br>

</c:forEach>

键遍历 <br>

<c:forEach var="item" items="${map2}">

${itemkey}<br>

</c:forEach>

值遍历 <br>

<c:forEach var="item" items="${map2}">

${itemvalue}<br>

</c:forEach>

<body>

<br><br>

<%

List<String> list = new ArrayList<String>();

listadd("first");

listadd("second");

List<String> list2 = new ArrayList<String>();

list2add("aaaaaa");

list2add("bbbbbb");

Map<String,List<String>> map = new HashMap();

mapput("a",list);

mapput("b",list2);

requestsetAttribute("map",map);

%>

通过键获得列表值,并遍历列表 <br>

<c:forEach var="item" items="${map['a']}">

${item }<br>

</c:forEach><br>

<c:forEach var="item" items="${map['b']}">

${item }<br>

</c:forEach> <br>

map中值为列表,直接遍历列表中的每一项 <br>

<c:forEach var="item" items="${map}">

<c:forEach items="${itemvalue}" var="it">

${it }<br>

</c:forEach>

</c:forEach>

你要明白el表达式是在什么时候执行的

el表达式实际上是java代码, 即jsp里的java代码, 是servlet执行的

也就是说, 后台看到el表达式的时候就执行了, 然后用执行的结果代替这个el表达式, 然后再返回给前台

你写alert("${endtimeMap['8']}");

后台看到的是就是${endtimeMap['8']}这个东西, 然后计算从map里得到对应的值, 代替则个东西, 所以你到前台看到的实际上是map里的值了

如果你写alert("${endtimeMap['"+ff+"']}");, 后台看到的是${endtimeMap['"+ff+"']}, 你觉得后台能把这个解析成什么, 后台会认为你是取map里key值为"\"+ff+\""的value(你要是不信, 你给你的map里添一组这个key-value)

归根结底还是执行顺序的问题, el表达式是servlet是后台执行的, js是得到response后在前台执行的, el优先于js, 你的想法是js先把值穿进去, 然后el表达式再得值, 所以必须不正确了

这样说你应该明白了吧

比如获取map里面carTpye对应的值

<c:forEach items="${list}" var="map">

${mapcarType}

</c:forEach>

以上就是关于jsp用el表达式遍历集合的时候,我想在一行只显示 两条数据,这个怎么实现,求解全部的内容,包括:jsp用el表达式遍历集合的时候,我想在一行只显示 两条数据,这个怎么实现,求解、EL表达式怎么获取Map的动态key、使用el表达式获取request中map值的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9723047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存