jsp页面循环map展示

安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&java 在jsp页面上使用jstl循环显示HashMap中的键值对 - 为程序员服务
为程序员服务
在jsp页面上使用jstl循环显示HashMap中的键值对
假定我有如下HashMap,我想在jsp页面循环显示其键值对:
HashMap&String, String& countries = MainUtils.getCountries(l);
&select name=&country&&
// 此处循环显示hashmap
使用jstl的&c:forEach ..&可以做这件事情,如下例子:
&%@ taglib prefix=&c& uri=&/jsp/jstl/core& %&
&select name=&country&&
&c:forEach items=&${countries}& var=&country&&
&option value=&${country.key}&&${country.value}&/option&
&/c:forEach&
使用.key和.value可以显示hashmap中的键值
您可能的代码
相关聚客文章
相关专栏文章1.在IterationTag接口是Tag接口的子接口,里面有个doAfterBody方法,该方法决定是否重复执行标签体内容
2.web容器执行自定义标签的过程如下初始化时调用setPageContent()方法,完了在调用setParent方法2.1web容器首先执行自定义标签的开始标记,同时调用doStartTag方法。2.2如果doStartTag方法返回EVAL_BODY_INCLUDE,web容器在执行完标签体的内容后,会调用标签类得doAfterBody方法;如果doStartTag方法返回SKIP_BODY,doAfterBody方法不会调用,web容器会直接调用标签类得doEndTag方法2.3如果doAfterBody方法被调用,并且方法返回EVAL_BODY_AGIN,web容器会再次执行标签体的内容;如果doAfterBody方法返回SKIP_BODY,web容器会调用标签类的doEndTag方法2.4如果doEndTag方法返回EVAL_PAGE,web容器会执行标签后面的内容;如果doEndTag方法返回SKIP_PAGE,web容器会忽略自定义标签后面的内容
3.实现BodyTag接口的BodyTagSupport类使用在编写代码时需要注意一下几点:由于setPageContext方法、setParent方法、属性的setter方法和doStartTag方法在setBodyContent方法之前调用,因此不能再这些方法中使用bodyContext对象,也就是说只能在setBodyContent方法后面被调用的方法中才能使用BodyContent对象,如doInitBody、doAfterBody和doEndBody方法.如果要修改标签体的内容,只能在标签体执行完成后再处理,也就是说,只能在doAfterBody或doEndTag方法中编写处理代码。
阅读(...) 评论()JSP中如何&循环显示&数据库中的数据到list.jsp页面&(转载)
首先在dao层写findall方法,返回值为&要循环对象 的队列列表。查找出来所有的数据
public&List&News&&findall()
throws Exception{
List&News& newsList=new
ArrayList&News&();
conn=Dbinit.getConn();
pstmt=conn.prepareStatement("select * from news");
rs=pstmt.executeQuery();
(rs!=null && rs.next()) {
News news=new News();&
//此处新建对象一定要放在循环里面,不能放在while外面,不然只能循环出最后一条数据//我昨天就因为这个错误,花费了一天的时间呀,而且也不能初始化为null,不然取不到值的
news.setId(rs.getLong("id")); //读取数据库里的值保存到对象
news.setTitle(rs.getString("title"));
news.setZuozhe(rs.getString("zuozhe"));
news.setLaiyuan(rs.getString("laiyuan"));
news.setContent(rs.getString("content"));&
news.setFabutime(rs.getString("fabutime"));&&&&
newsList.add(news); //将对象添加保存到列表
&&& return
&& } catch (RuntimeException e)
&&& // TODO
Auto-generated catch block
e.printStackTrace();
&&& return
&& }finally{
Dbinit.close(rs, pstmt, conn);
二 servlet层里面的代码&
List&News&
list=newsdao.findall();&&
//执行dao方法
request.setAttribute("newslist", list);
//保存到request方便前台调用
request.getRequestDispatcher("/admin/list.jsp").forward(request,response);
&&& } catch
(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
三 前台list.jsp列表页面
&table border="1" cellspacing="0" cellpadding="0"
width="100%" style="align:"&
&tr bgcolor="ff9900"
style="font-weight:"&
&th&新闻编号&/th&&th&新闻标题&/th&&th&发布人&/th&&th&来源&/th&&th&发布时间&/th&&th
width="100"
colspan="2"&操作&/th&&/tr&
&& //循环显示数据
&&&List&News&
newslist=(List)request.getAttribute("newslist"); //
取request里面的对象队列
if(newslist.size()!=0){
i=0;i&newslist.size();i++){&&&&&&&&
pageContext.setAttribute("news",newslist.get(i));&
&&&&&&&&&&
//保存到页面pageContext里面方便下面进行EL表达式调用
&td&${news.id
}&/td&&&&&//EL表达式调用
&td&${news.title
&td&${news.zuozhe
&td&${news.laiyuan
&td&${news.content
href="admin/news.do?method=edit&id=${news.id
}"&修改&/a& |
href="admin/news.do?method=remove&id=${news.id }"
onclick='return confirm("确定要删除吗?")'
&删除&/a&&/td&
colspan="6"&数据库中没有数据!&/td&&/tr&
补充: 当然还有别一种方法,就是直接用JSP表达式
border="1" cellspacing="0" cellpadding="0" width="100%"
style="align:"&
&tr bgcolor="ff9900"
style="font-weight:"&
&th&新闻编号&/th&&th&新闻标题&/th&&th&发布人&/th&&th&来源&/th&&th&发布时间&/th&&th
width="100"
colspan="2"&操作&/th&&/tr&
&& //循环显示数据
&&&&List&News&
newslist=(List)request.getAttribute("newslist");&//
取request里面的对象队列
if(newslist.size()!=0){
for(int i=0;i&newslist.size();i++){
News news =new News(); //新建对象
news = newslist.get(i);&&
//每循环一次后将此时的值保存到对象里
&td&&%=newslist.get(i).getId()
//用JSP表达式
&td&&%=newslist.get(i).getTitle()
&td&&%=newslist.get(i).getZuozhe()
&td&&%=newslist.get(i).getLaiyuan()%&&/td&
&td&&%=newslist.get(i).getContent()%&&/td&
href="admin/news.do?method=edit&id=&%=newslist.get(i).getId()%&"&修改&/a&
href="admin/news.do?method=remove&id=&%=newslist.get(i).getId()%&"&onclick='return
confirm("确定要删除吗?")'
&删除&/a&&/td&
colspan="6"&数据库中没有数据!&/td&&/tr&
&& &/table
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 jsp页面循环list 的文章

 

随机推荐