`

bboss逻辑标签判断对象类型是否为给定的Class类型方法

阅读更多
在java代码中可以非常方便地判断对象类型是否是给定的类型,例如:
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
分享到:
评论

相关推荐

    bboss会话共享培训文档

    对于修改session中的对象数据,必须调用session.setAttribute方法将对象数据更新到MongoDB中,从而实现数据的共享。 bboss会话共享还提供了两种模式: 1. 集群间会话共享模式,这种模式实现了一个应用集群中各个...

    bboss mvcdemo 下载地址

    BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...

    企业级J2EE开源框架bboss

    BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss-db-elasticsearch-tool-master_java_

    BBoss-DB-Elasticsearch-Tool就是这样一个工具,它为开发人员提供了一种统一的方式来处理不同类型的数据库,包括关系型数据库和NoSQL数据库,尤其是Elasticsearch这种流行的全文搜索引擎。 在Java中,传统的JDBC...

    bboss 安全认证过滤器功能介绍

    SYSAuthenticateFilter就是BBoss框架中专门用于安全认证的过滤器,它负责拦截请求,检查用户是否已经登录并拥有访问特定资源的权限。 首先,我们来看一下`SYSAuthenticateFilter.java`这个文件。作为过滤器的实现类...

    bboss ioc配置文件中使用外部属性文件介绍

    BBoss是一个轻量级的企业级应用开发框架,提供了IOC(Inversion of Control)功能,使得对象之间的依赖关系可以通过配置文件进行管理。本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    1. **创建索引**: 使用 BBoss 提供的 API 创建索引,指定映射(Mapping)以便对数据类型进行定义。 2. **插入数据**: 将业务数据插入到索引中,BBoss 提供了批量插入功能,可以高效处理大量数据。 3. **查询数据**: ...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    bboss+es基本操作示例.zip

    **bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 提供了丰富的数据转换规则,包括数据类型转换、字段筛选、异常值处理、数据拼接等,确保数据的质量和一致性。此外,它还支持自定义脚本(如Java、Python)进行复杂的数据清洗和预处理任务。 ### ...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    在IT行业中,数据库操作是必不可少的一部分,特别是在处理大数据量或者特殊数据类型如CLOB(Character Large Object)和BLOB(Binary Large Object)时。BBoss Persistent是一个轻量级的持久层框架,它提供了方便的...

    Bboss和xstream序列化反序列化性能对比1

    在数据结构方面,测试使用了一个名为`Person`的类,该类包含了各种类型的字段,如`PhoneNumber`对象、字符串数组、列表、映射和集合。这有助于模拟真实世界的复杂对象结构,并评估两个库在处理这些结构时的性能。 ...

    bboss-soa.jar

    官方版本,亲测可用

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿.pptx

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿

    bboss+easyui帮助文档比较详细

    BBoss,全称为“Business Basic Operation Support”,是一个基于Java的企业级开发框架,它提供了丰富的组件和工具,使得开发者能够快速地进行业务逻辑的构建。而EasyUI则是一个基于jQuery的前端UI库,它为开发者...

Global site tag (gtag.js) - Google Analytics