自定义foreach标签,遍历List集合和map?
2017-04-26 10:05
543 查看
问题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);
处理器类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;
}
}
3)tld文件内容
foreach
defineLables.foreach
scriptless
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;
}
@Override public 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>
相关文章推荐
- logic标签遍历map map中存放的是 List集合对象
- javaweb之自定义标签库——迭代标签(foreach)(可迭代Map、List、Set、任意数组)
- list集合存list 以及s标签在foreach循环遍历中用EL表达式取值
- c:forEach 标签中遍历map集合
- jsp 页面中用struts2 标签遍历集合(list map)
- Struts2.3,<s:iterator>,<c:forEach>遍历map中的list集合
- c:forEache标签 List Map 遍历输出
- Struts2.3,<s:iterator>,<c:forEach>遍历map中的list集合
- 总结最近学jstl的一些收获,自定义jstl标签,jstl foreach 遍历map
- cforeach遍历map(string,string) cforeach遍历map(string,list)
- Java:集合,Array、Collection(List/Set/Queue)、Map的遍历,比如:ArrayList,LinkedList,HashSet,HashMap
- 去除List集合中的重复对象,Map遍历代码
- jstl标签中forEach标签遍历Map
- struts标签遍历各种list Map
- jsp简单自定义标签的forEach遍历及转义字符
- java中List、Set、Map集合的遍历方法总结
- Struts2标签遍历List<Map<String,String>>
- set,list,map集合循环遍历
- c标签遍历集合嵌套的List集合
- jsp简单自定义标签的forEach遍历及转义字符