自定义foreach标签,遍历List集合和map?
来源:互联网 发布:满族饮食 知乎 编辑:程序博客网 时间:2024/05/29 18:53
问题1:自定义foreach标签,遍历List集合和map?
jsp文件内容:
1)引入tld文件
<%@taglib uri=”www.ctags.c” prefix=”ctag” %>
2)将数据添加到域当中。
//集合
List list = new ArrayList();
list.add(new student(“jia”,24,”id333”));
list.add(new student(“cui”,24,”id444”));
list.add(new student(“kun”,24,”id555”));
//将集合保存到request域当中
pageContext.setAttribute(“list”, list,pageContext.REQUEST_SCOPE);
//map Map<String,student> map = new HashMap<String,student>(); map.put("101",new student("cui",10,"id999")); map.put("102",new student("jia",23,"id888")); map.put("103",new student("wang",24,"id777")); //将map保存到page域当中 pageContext.setAttribute("map",map); %> <ctag:foreach items="${list}" var="student"> 姓名:${student.name} --- 年龄:${student.age}<br/> </ctag:foreach> <hr/> <ctag:foreach items="${map}" var="entr"> ${entr}<br/> 姓名:${entr.value.name} -- 年龄:${entr.value.age}<br/> </ctag:foreach>
处理器类Java文件:
1)如何接收jsp属性的参数?
设置和jsp属性相同名称的成员变量和setXX方法。
2)如何给接收的jsp属性设置值?
使用域,page域就是当前的jsp和翻译的Java文件。
PageContext page = (PageContext)this.getJspContext();
page.setAttribute(var, obj);
// setAttribute(String,value),所以会将var变量的值作为字符串,将变量设置到域中。
public class foreach extends SimpleTagSupport{
//接收jsp标签属性值。
private Object items = null;
private String var = “”;
public void setItems(Object items) {
this.items = items; //items是eL标签取出的域变量。
}
public void setVar(String var) {
this.var = var;
}
@Overridepublic void doTag() throws JspException, IOException { //遍历list if(items instanceof List){ List list = (List)items; for(Object obj:list){ //把每个对象,放到pagecontext当中。 PageContext page = (PageContext)this.getJspContext(); page.setAttribute(var, obj); // setAttribute(String,value),所以会将var变量的值作为字符串,将变量设置到域中。 //System.out.println("this is ->>>>"+page.getAttribute(var)); //显示标签体内容。 this.getJspBody().invoke(null); } } //遍历map if(items instanceof Map){ Map map = (Map)items; Set<Entry> entrySet = map.entrySet(); for(Entry ent:entrySet){ //把每个对象,放到pagecontext当中。 PageContext page = (PageContext)this.getJspContext(); page.setAttribute(var, ent); //显示标签体内容。 this.getJspBody().invoke(null); } }}
}
3)tld文件内容
foreach
defineLables.foreach
scriptless
<attribute> <!-- 属性名 --> <name>items</name> <!-- 属性必须得有值 --> <required>true</required> <!-- 属性值可以是el表达式--> <rtexprvalue>true</rtexprvalue></attribute><attribute> <name>var</name> <required>true</required> <rtexprvalue>true</rtexprvalue></attribute>
- 自定义foreach标签,遍历List集合和map?
- c:forEach 标签中遍历map集合
- jsp 中用forEach遍历 List 和Map
- 使用<c:forEach>标签遍历List中的map元素
- 遍历List和Map集合,遍历数组
- list和map集合遍历方法
- jstl标签中forEach标签遍历Map
- jsp 页面中用struts2 标签遍历集合(list map)
- list集合存list 以及s标签在foreach循环遍历中用EL表达式取值
- Java中Map集合和List集合的遍历方式
- c:foreach遍历循环List<Map>
- Struts2.3,<s:iterator>,<c:forEach>遍历map中的list集合
- Struts2.3,<s:iterator>,<c:forEach>遍历map中的list集合
- <c:foreach>标签循环map集合不起作用
- Jsp使用<c:forEach>遍历List集合
- struts2标签 遍历map集合
- 遍历List中的Map集合
- 总结最近学jstl的一些收获,自定义jstl标签,jstl foreach 遍历map
- 【23种设计模式】之 组合模式(Composite Pattern)
- leetcode-74 search a 2D matrix
- centos6.5下安装oracle11g
- 监听器记录一下
- 关于this指针的思考
- 自定义foreach标签,遍历List集合和map?
- ScrollView嵌套listView解决方案
- 表格之删除功能
- ubuntu安装ssh服务
- idea Mac 2017.1激活
- Head First SQL 第八章
- 《深入浅出nodejs》异步i/o笔记(1)
- svn不能打开 系统找不到
- Http请求中Content-Type讲解以及在Spring MVC注解中produce和consumes配置详解