在jsp页面如何获取Map里面某一个指定集合的值并循环打印

最近在使用jsp的时候对map数据进行输出的时候遇到了麻烦

结果是由于我在ation当中没有给map设置get方法(本人所是有的是ssh框架)

假设:action中有一个变量map,键值对分别是String和自定义User类型的集合

action有如下代码,并且action中存在map属性、map的set和get方法

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

User user=new User();

user.setId=1;

user.setName="aa";

List<User> list1=new ArrayList<User>();

list1.add(user); 

User user2-new User();

user2.setId=2;

user2.setName="bb";

list1.add(user2);

User user3=new User();

user3.setId=3;

user3.setName="cc";

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

list1.add(user3); 

User user4-new User();

user4.setId=4;

user4.setName="cc";

list2.add(user4);

map.put("group1",list1);

map.put("group2",list2);


假如想在jsp中遍历list1该怎么做呢

使用struts2标签

<s:iterator  value="map['group1']" >

<s:property value="id"/>:<s:property value="name"/>

<br/>

</s:iterator>

页面将会输出

1:aa

2:bb


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较典型的Java Web开发中的应用。我可以给您提供一些思路来实现这个功能。 首先,您需要一个 Servlet 或者 Filter 来监听客户端的访问,并将访问次数存入到 application 作用域的 Map 中。这个 Servlet 或者 Filter 可以在 web.xml 中进行配置。 在 Servlet 或者 Filter 中,可以通过以下方式来获取客户端的 IP 地址: ``` String ip = request.getRemoteAddr(); ``` 接着,您需要判断这个 IP 地址在 Map 中是否已经存在。如果存在,则将其对应的加一;如果不存在,则将其添加到 Map 中,并将其对应的设置为1。 ``` Map<String, Integer> visits = (Map<String, Integer>) getServletContext().getAttribute("visits"); if (visits.containsKey(ip)) { visits.put(ip, visits.get(ip) + 1); } else { visits.put(ip, 1); } ``` 最后,您可以编写一个 JSP 页面来展示这个 Map 集合数据。可以使用 EL 表达式和 forEach 循环来遍历 Map,将其展示在页面上。同时,使用 JavaScript 的定时器来定时刷新页面,实现每三秒刷新一次的效果。 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Visits</title> </head> <body> <h1>Visits</h1> <table> <thead> <tr> <th>IP Address</th> <th>Visits</th> </tr> </thead> <tbody> <c:forEach items="${visits}" var="entry"> <tr> <td>${entry.key}</td> <td>${entry.value}</td> </tr> </c:forEach> </tbody> </table> <script> setInterval(function() { window.location.reload(); }, 3000); </script> </body> </html> ``` 以上就是一个简单的实现思路,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值