- 浏览: 697704 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
本文就bboss标签库与jstl标签库中的几个常用标签做个简单的对比:
逻辑标签和数据展示标签
1.导入的tld文件
使用bboss标签库,jsp头部需要导入:
jstl标签库,jsp头部导入:
2.逻辑判断标签对比
分别使用bboss和jstl来实现逻辑或条件判断功能:menuType的值为 'item'或者'module'或者'subSystem'时为真:
先看jstl
再看bboss,可以通过in标签和true标签来实现上述功能(使用in标签是不是比if标签要更简单和直观一些呢?):
bboss的true标签实现上述功能(true比if的语义更加明确):
if-else对比
先看jstl
再看bboss:
再看看bboss的if-elseif-else:
bboss的逻辑标签比较丰富,功能丰富,语义明确,除了true和in,还有相对应的false和notin标签,他们可以嵌套组合实现if/else等各种各样的逻辑判断操作,更加详细的信息可参考文档《bbossgroups标签库使用大全(续)》;jstl的if等逻辑标签功能也非常丰富,但是语义不明确,看起来比较费劲。
3.集合展示标签对比
主要是collection/数组/map的展示标签,先看看jstl如何来展示一个collection集合:
再来看看bboss的list标签如何展示上述功能:
jstl的foreach和bboss的list标签都可以很好地展示collection、数组、set中的数据,也能够嵌套使用,bboss有专门的map标签来展示map数据。jstl为了展示数据会定义一个数据变量和状态变量,并且获取集合长度还要反复调用fn标签;而bboss无需定义这两个变量,不仅内置了rowcount标签和rowid标签,而且在equal等逻辑标签的expression和expressionValue表达式属性中还可以使用以下内置变量:
如果上述的list展示内容较多,我们可以精简一下:
bboss
jstl实现相同的功能:
呵呵,再看看一个精简的map数据的展示功能:
bboss
jstl
复杂一点的:
bboss
jstl
bboss的数据展示标签的详细使用,请参考文档《bbossgroups标签库使用大全 》。
4.总结
通过本文几个简单的功能对比,可以看出jstl和bboss的基本功能都非常丰富,从对比中可以看出bboss标签展示数据和实现逻辑判断等功能时语义更加明确,代码更加通俗易懂。(本文观点仅代表作者本人观点,欢迎大家讨论交流)
官网http://www.bbossgroups.com/上的文件bbossgroups-3.6.2.zip已经去掉,如果需要下载bboss的最新版本请访问官网http://www.bbossgroups.com首页(提供了下载地址)或者访问http://yin-bp.iteye.com/blog/1080824提供的github地址下载bboss最新版本
逻辑标签和数据展示标签
1.导入的tld文件
使用bboss标签库,jsp头部需要导入:
<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>
jstl标签库,jsp头部导入:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
2.逻辑判断标签对比
分别使用bboss和jstl来实现逻辑或条件判断功能:menuType的值为 'item'或者'module'或者'subSystem'时为真:
先看jstl
<c:if test="${menuType eq 'item' or menuType eq 'module' or menuType eq 'subSystem'}"> do somthing. </c:if>
再看bboss,可以通过in标签和true标签来实现上述功能(使用in标签是不是比if标签要更简单和直观一些呢?):
<pg:in actual="${menuType}" scope="item,module,subSystem"> do somthing. </pg:in>
bboss的true标签实现上述功能(true比if的语义更加明确):
<pg:true actual="${menuType eq 'item' or menuType eq 'module' or menuType eq 'subSystem'}"> do somthing. </pg:true>
if-else对比
先看jstl
<c:choose> <c:when test="${param.newFlag== '1' || param.newFlag== '2' ||param.newFlag== '3'}"> <th>作品名称<font color="Red">*</font>:</th> </c:when> <c:otherwise> <th>班级<font color="Red">*</font>:</th> </c:otherwise> </c:choose>
再看bboss:
<pg:true actual="${param.newFlag== '1' || param.newFlag== '2' ||param.newFlag== '3'}" evalbody="true"> <pg:yes> <th>作品名称<font color="Red">*</font>:</th> </pg:yes> <pg:no> <th>班级<font color="Red">*</font>:</th> </pg:no> </pg:true>
再看看bboss的if-elseif-else:
<pg:case actual="${count}"> <pg:equal value="1"> yes,1! </pg:equal> <pg:equal value="2"> yes,2! </pg:equal> <pg:other> yes,other!! </pg:other> </pg:case>
bboss的逻辑标签比较丰富,功能丰富,语义明确,除了true和in,还有相对应的false和notin标签,他们可以嵌套组合实现if/else等各种各样的逻辑判断操作,更加详细的信息可参考文档《bbossgroups标签库使用大全(续)》;jstl的if等逻辑标签功能也非常丰富,但是语义不明确,看起来比较费劲。
3.集合展示标签对比
主要是collection/数组/map的展示标签,先看看jstl如何来展示一个collection集合:
<c:forEach var="subSys" items="${subSystems}"> <fieldset> <legend>${subSys.value.name}</legend> <table> <tr> <td width="124" height="28" class="detailtitle"> id: </td> <td class="detailcontent"> ${subSys.value.id} </td> </tr> <tr> <td width="124" height="28" class="detailtitle"> name: </td> <td class="detailcontent"> <c:forEach var="name" items="${subSys.value.localeNames}" varStatus="status"> ${name.key}:${name.value}${status.index != fn:length(subSys.value.localeNames)-1 ? "," : ""} </c:forEach> </td> </tr> <tr> <td width="124" height="28" class="detailtitle"> baseuri: </td> <td class="detailcontent"> ${subSys.value.baseuri} </td> </tr> </table> </fieldset> </c:forEach>
再来看看bboss的list标签如何展示上述功能:
<pg:list actual="${subSystems}"> <fieldset> <legend><pg:cell colName="name"/></legend> <table> <tr> <td width="124" height="28" class="detailtitle"> id: </td> <td class="detailcontent"> <pg:cell colName="id"/> </td> </tr> <tr> <td width="124" height="28" class="detailtitle"> name: </td> <td class="detailcontent"> <pg:map colName="localeNames" > <pg:mapkey />:<pg:cell /><pg:equal expression="{rowcount}-1" expressionValue="{rowid}"> ","</pg:equal> </pg:map> </td> </tr> <tr> <td width="124" height="28" class="detailtitle"> baseuri: </td> <td class="detailcontent"> <pg:cell colName="baseuri"/> </td> </tr> </table> </fieldset> </pg:list>
jstl的foreach和bboss的list标签都可以很好地展示collection、数组、set中的数据,也能够嵌套使用,bboss有专门的map标签来展示map数据。jstl为了展示数据会定义一个数据变量和状态变量,并且获取集合长度还要反复调用fn标签;而bboss无需定义这两个变量,不仅内置了rowcount标签和rowid标签,而且在equal等逻辑标签的expression和expressionValue表达式属性中还可以使用以下内置变量:
rowid:遍历集合的当前行号(从0开始) offset :分页标签中当前页的第一条记录在总记录中所处的位置 rowcount :总记录数 pagesize :当前页或者当前列表获取到的记录数 mapkey :map中当前记录的key currentcell:map中当前记录的值
如果上述的list展示内容较多,我们可以精简一下:
bboss
<pg:list actual="${subSystems}"> <pg:cell colName="name"/>//对象中的name属性 <pg:cell colName="id"/>//对象中的id属性 </pg:list>
jstl实现相同的功能:
<c:forEach var="subSys" items="${subSystems}"> ${subSys.value.name} ${subSys.value.id} </c:forEach>
呵呵,再看看一个精简的map数据的展示功能:
bboss
<pg:map actual="${publicItem.workspacecontentExtendAttribute}"> <pg:mapkey /> <pg:cell/> </pg:map>
jstl
<c:forEach var="attribute" items="${publicItem.workspacecontentExtendAttribute}"> ${attribute.key} ${attribute.value} </c:forEach>
复杂一点的:
bboss
<pg:map actual="${publicItem.localeHeadimgs}" > <pg:notequal expression="{rowid}" value="0">,</pg:notequal><pg:mapkey/>:<pg:cell/> </pg:map>
jstl
<c:forEach var="headimg" items="${publicItem.localeHeadimgs}" varStatus="status"> ${headimg.key}:${headimg.value}${status.index != fn:length(publicItem.localeHeadimgs)-1 ? "," : ""} </c:forEach>
bboss的数据展示标签的详细使用,请参考文档《bbossgroups标签库使用大全 》。
4.总结
通过本文几个简单的功能对比,可以看出jstl和bboss的基本功能都非常丰富,从对比中可以看出bboss标签展示数据和实现逻辑判断等功能时语义更加明确,代码更加通俗易懂。(本文观点仅代表作者本人观点,欢迎大家讨论交流)
评论
2 楼
yin_bp
2014-02-11
dsf007 写道
您好 在您的官网http://www.bbossgroups.com/上的bbossgroups-3.6.2.zip 下载后总是解压出错。是不是没上传完整啊。而且文件大小比3.6.0小太多了。一个80多兆,一个280多兆。请检查一下吧。
官网http://www.bbossgroups.com/上的文件bbossgroups-3.6.2.zip已经去掉,如果需要下载bboss的最新版本请访问官网http://www.bbossgroups.com首页(提供了下载地址)或者访问http://yin-bp.iteye.com/blog/1080824提供的github地址下载bboss最新版本
1 楼
dsf007
2013-09-18
您好 在您的官网http://www.bbossgroups.com/上的bbossgroups-3.6.2.zip 下载后总是解压出错。是不是没上传完整啊。而且文件大小比3.6.0小太多了。一个80多兆,一个280多兆。请检查一下吧。
发表评论
-
bboss标签库cell标签格式化数字实例
2016-11-24 10:38 926bboss标签库cell标签格式化数字实例 带double类 ... -
bboss标签库cell标签展示嵌套对象属性方法实例
2016-11-16 21:47 964bboss标签库cell标签展示 ... -
bboss标签库list/map标签循环变量var属性使用说明
2015-12-24 09:17 1381bboss标签库list/map标签循环变量var属性使用说明 ... -
bboss逻辑标签实现if-else以及if-else if-else条件判断功能介绍
2014-11-25 23:43 1796采用bboss逻辑标签可以非常容易地实现if-else以及if ... -
bboss标签实现列表中的动态列数据展示方法
2014-10-26 12:46 1320借助bboss标签库提供的list标签,我们可以非常方便地实现 ... -
bboss逻辑标签判断对象类型是否为给定的Class类型方法
2014-10-12 11:35 889在java代码中可以非常方 ... -
bboss数据库标签系列一 分页列表详细信息标签预编译sql查询数据
2014-10-09 12:54 1129本系列文章详细介绍bboss标签库的数据库标签具体使用方法,涉 ... -
扩展bboss标签库编写自己的标签
2014-09-25 22:17 1025扩展bboss标签库编写自己的标签。 实际使用bboss标签库 ... -
bbossgroups标签库使用大全(续三)-新增功能特性详解
2014-03-23 10:58 1007bbossgroups标签库使用大全(续三)-bboss最近新 ... -
bbossgroups标签库使用大全(续二)-表达式使用
2014-02-25 22:28 1104本文详细介绍bboss标签库特有表达式的使用方法。可以在分页/ ... -
bboss分页组件翻页js前置处理函数和js后置处理函数使用方法
2014-01-16 10:30 1221bboss 3.7.7版本及后续版本为分页组件增加翻页js前置 ... -
bboss持久层More分页查询API使用介绍
2013-10-18 16:17 1486为了更好地提高数据库分页查询的效率,bboss持久层在Conf ... -
bbossgroups标签使用大全(续一)-安全篇
2013-09-01 15:08 1151本文是bboss 标签库系列 ... -
bboss中的map标签结合list标签/cell标签展示复杂数据结构案例
2012-08-31 12:12 1805bboss中的map标签结合list ... -
bboss标签库使用大全-逻辑标签使用介绍
2011-08-01 21:58 2713bbossgroups标签库使用大全(续),接上篇《bboss ... -
bboss标签使用大全-数据展示标签
2011-07-31 23:28 4331bboss标签库使用大全 本文介绍bboss中所有数据展示标 ... -
bboss特色介绍
2011-06-12 15:43 18959bboss是一个j2ee开 ... -
采用jquery来分页,排序,查询
2010-04-13 21:19 1453页面标签全面采用jquery来分页,排序,查询 又花了 ... -
树标签的脚本从prototype迁移到jquery实战
2010-04-12 19:31 1010花了一天的时间将树标签的脚本全部从prototype迁移到jq ... -
关于树标签的问题1-动静模式是,点击下级节点不能展开的问题
2010-03-05 09:02 1031关于树标签的问题-动静模式是,点击下级节点不能展开的问题 b ...
相关推荐
bboss会话共享通过为应用提供统一的会话管理功能,保证了即使用户被切换到其他节点,也能够继续访问之前保存的会话数据。 其次,bboss会话共享支持跨域和跨应用的会话共享,并能实现单点登录(SSO)功能。单点登录...
6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...
bboss-datatran 的流批一体功能打破了传统流式处理与批处理之间的界限。它允许用户在同一平台上处理实时流数据和批量历史数据,降低了系统复杂性,提高了数据处理的实时性和一致性。这对于实时监控、在线分析以及...
1. **组件化开发**:BBoss支持模块化和组件化的开发模式,允许开发者根据项目需求选择必要的功能组件,避免了传统框架中“大而全”的问题,降低了系统的复杂度。 2. **数据库操作**:BBoss提供了便捷的数据访问层...
在本例中,BBoss Elasticsearch工具集成了几个关键的库,以支持与Elasticsearch的交互。 1. `log4j-core-2.8.2.jar`:Apache Log4j是Java平台上的一个日志记录框架,用于收集应用程序运行过程中的各种信息。版本...
**Elasticsearch 开发环境搭建与 BBoss 入门教程** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于快速提供近实时的搜索和分析能力。BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的...
bboss框架集成了AOP/iOC、MVC、持久化标签库、RPC、事件处理、Bean-XML序列化等多种功能。本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。
bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...
在本文中,我们将深入探讨Bboss和Xstream两个序列化和反序列化库在性能方面的差异。这两个库在Java开发中广泛用于将对象转换为XML格式,以便于存储、传输或持久化。以下是对这两个库的详细分析。 首先,Bboss和...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
bboss(Business Basic Operation Support)框架则是针对Elasticsearch设计的一套高效、易用的Java API,它提供了丰富的DSL(Domain Specific Language)操作支持,使得开发者能够更加便捷地与Elasticsearch进行交互...
【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...
bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...
除了`<property-placeholder>`标签,BBoss还支持使用`<context:property-placeholder>`标签,它是Spring框架的一部分,也可以与BBoss集成使用。这种方式的配置类似,但提供了更多的选项,如默认值、忽略未定义的属性...
而EasyUI则是一个基于jQuery的前端UI库,它为开发者提供了大量的预设组件,如表格、树形结构、下拉菜单等,以创建美观且响应式的用户界面。 BBoss框架的核心特性包括: 1. **模块化设计**:BBoss采用了模块化的...
4. **源码分析**:标签中提到的“源码”意味着我们可以通过查看BBoss Persistent的源代码来了解其内部处理大字段的具体实现。通过这种方式,开发者可以更好地理解其工作原理,进行定制化开发或优化。 5. **工具支持...