浏览 2956 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-10-12
最后修改:2014-10-13
if(object instanceof java.util.Map) do something. 那么在jsp中也可能需要识别对象的class类型并做出相应的处理,本文介绍采用bboss逻辑标签来判断对象类型是否为特定的Class类型方法。 bboss逻辑标签来判断对象类型是否为给定的Class类型通过true和false两个逻辑标签来实现,通过两个标签的typeof属性来指定需要匹配的Class类型,用来检测相应数据类型是否是typeof给定的类型,typeof可以字符串类型的类路径,也可以直接是Class对象。 bboss逻辑标签的使用文档可以参考: http://yin-bp.iteye.com/blog/1137674 具体使用方法如下: typeof值为字符串类型的类路径 <%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> <pg:true typeof="java.util.Map"> do something here. </pg:true> <pg:false typeof="java.util.Map"> do something here. </pg:false> typeof值直接是Class对象 <%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> <pg:true typeof="<%=java.util.Map.class%>"> do something here. </pg:true> <pg:false typeof="<%=java.util.Map.class%>"> do something here. </pg:false> true标签只有在对应的数据类型匹配上typeof给定的类型才成立 false标签只有在对应的数据类型没有匹配上typeof给定的类型才成立 我们来看一个具体的实例: 这个列子中我们构建一个map容器,容器中放置两种类型的数据,一种数据的类型为test.TestBean,另一种数据的类型为java.util.Map,然后在jsp页面中用map标签输出这些数据,输出数据时需要用到true逻辑标签来识别相应的数据类型,然后来做出相应的输出操作。 <%@ page contentType="text/html; charset=UTF-8" language="java" import="test.*,java.util.*"%> <%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> <% TestBean bean = null; Map mapbeans = new HashMap();//定义一个map,值可能是TestBean类型也可能是另外一个map bean = new TestBean(); bean.setId("uuid"); bean.setName("多多"); mapbeans.put(bean.getId(),bean);//添加一个类型为TestBean的元素 bean = new TestBean(); bean.setId("uuid1"); bean.setName("多多1"); mapbeans.put(bean.getId(),bean);//添加一个类型为TestBean的元素 bean = new TestBean(); bean.setId("uuid2"); bean.setName("多多2"); mapbeans.put(bean.getId(),bean);//添加一个类型为TestBean的元素 Map<String,String> mapstrings = new HashMap<String,String>(); mapstrings.put("id1","多多1"); mapstrings.put("id2","多多2"); mapstrings.put("id3","多多3"); mapstrings.put("id4","多多4"); mapbeans.put("inner", mapstrings);//添加一个类型为Map的元素 request.setAttribute("mapbeans",mapbeans); %> <html> <head> <title>测试获取map信息实例</title> </head> <body> <table> <h3>map<String,po>对象信息迭代功能,采用map标签输出map中的元素信息</h3> <pg:map requestKey="mapbeans"> <pg:true typeof="<%=test.TestBean.class %>"> <tr > <td> mapkey:<pg:mapkey/> </td> <td> id:<pg:cell colName="id" /> </td> <td> name:<pg:cell colName="name" /> </td> </tr> </pg:true> <pg:true typeof="java.util.Map"> <tr > <td><table> <pg:map> <tr> <td>outer mapkey use expression:<pg:cell expression="{0.mapkey}" /></td> <td>outer mapkey :<pg:mapkey index="0"/> , inner mapkey:<pg:mapkey/></td> <td> inner value:<pg:cell/> </td> </tr> </pg:map> </table></td> </tr> </pg:true> </pg:map> </table> </body> </html> 这个例子中我们处理演示类型匹配操作功能外,还演示了嵌套的map标签中通过带索引号内置变量{0.mapkey}获取外围map标签中的mapkey的两种等价方法: 通过内置变量表达式: <pg:cell expression="{0.mapkey}" /> 通过mapkey标签带嵌套索引号index属性的方法: <pg:mapkey index="0"/> 索引号的规则:最外层嵌套为0,次外层为1,依次类推,list,map,beaninfo可以混合使用,索引号规则可以同时对这些混合嵌套使用的标签起作用。 bboss标签库表达式及标签内置变量的使用文档请参考: http://yin-bp.iteye.com/blog/2022430 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |