论坛首页 Java企业应用论坛

bbossgroups标签使用大全

浏览 2199 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-07-31   最后修改:2011-08-08
bbossgroups标签库使用大全

本文介绍bbossgroups中所有的标签及其使用方法。

1.bbossgroups中的标签
1.1.数据展示标签主要是bboss taglib中的一系列标签,很好地和mvc框架、jquery、jquery easyui结合使用: pager, listdata,notify,list, beaninfo,cell, rowid,rowcount,querystring ,convert,contextmenu,map,mapkey,param,index,config
树标签:tree,treedata,radio,checkbox
1.2.逻辑标签(可以和页面数据展示标签结合使用,也可以单独使用)equal,notequal,null,notnull, equalandlower, equalandupper,
upper, lower, in, notin,match,contain,notmatch,notcontain,empty,notempty
1.3.国际化和主题标签message
theme
1.4.mvc数据绑定错误信息展示标签errors
error
globalerrors
1.5.request/session标签request
session

1.6.数据库操作标签,有效防止sql注入问题
dbutil-执行数据库增、删、改操作(预编译和普通)
sqlparams-用于支持在pager标签,beaninfo标签,list标签上执行预编译操作的绑定变量集合,同时可以指定sql绑定变量的定义语法分界符。

batchutil-执行预编译批处理、普通批处理操作
statement-指定batchutil要执行的批处理语句,可以是预编译sql语句,也可以是普通sql语句
batch-指定statement指定的预编译sql语句的一组绑定变量
sqlparam-用来指定预编译操作的sql绑定变量参数的值、数据类型、数据格式,只能内置在dbutil,sqlparams,statement,batch三个标签中。

数据库标签的介绍,请参考文章:
http://yin-bp.iteye.com/blog/648161

2.下面全面介绍每类标签的简单用法。
2.1.标签定义文件的导入

<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>
<%@ taglib uri="/WEB-INF/treetag.tld" prefix="tree" %>
<%@ taglib uri="/WEB-INF/commontag.tld" prefix="common"%>	

2.2.config 标签
config 用来导入标签库用到的js文件,enablecontextmenu用来控制是否输出右键菜单相关的js函数,false不输出,反之输出,使用方法如下:
<pg:config enablecontextmenu="false"/>

2.3.list标签
用来输出list,set,map[],list<map>,list<string,number>等中的数据,使用方法如下,可以和pager标签结合使用,也可以直接从request,session,pagecontext中获取数据,或者直接从数据库获取数据,或者和list嵌套使用。

从request,session,pagecontext中获取数据:
<pg:list requestKey="serverHelloListBean" >			<pg:cell colName="name"/>
       <pg:cell colName="id"/>

</pg:list>


和pager标签结合使用:
<pg:listdata dataInfo="test.pager.TableInfoListData" keyName="TableInfoListData" />
				<!--分页显示开始,分页标签初始化-->
				<pg:pager maxPageItems="15" scope="request" data="TableInfoListData" 
						  isList="false">
					<tr class="cms_report_tr">
						<!--设置分页表头-->
					<pg:header>									
										
						<td width="2%" align=center style="width:5%">
						<input class="checkbox" 
							type="checkBox" hidefocus=true 
							name="checkBoxAll" 
							onClick="checkAll('checkBoxAll','ID')"> 
						</td>
						<pg:title nowrap="true" width="5%" title="TABLE_NAME"
											sort="false" colName="" className="report_header"/>
						<pg:title nowrap="true" width="5%" title="TABLE_ID_NAME"
											sort="true" colName="TABLE_ID_NAME" className="report_header"/>
						
						<td width="28%">
							TABLE_ID_INCREMENT</td>
						
						<td width="6%">
							TABLE_ID_VALUE						</td>
						<td width="9%">
							TABLE_ID_GENERATOR						</td>
						
						<td width="10%" height='30'>TABLE_ID_TYPE</td>
						<td width="10%" height='30'>TABLE_ID_PREFIX</td>
					</pg:header>									
					</tr>
				<pg:notify>
						<tr  class="labeltable_middle_tr_01">
							<td colspan=100 align='center' height="18px">
								没有数据
							</td>
						</tr>
				</pg:notify>

					
				<pg:list  autosort="false">
					<tr class="cms_report_tr">
						

						<td width="2%" align=center style="width:5%">
							<input class="checkbox" hideFocus onClick="checkOne('checkBoxAll','ID')" 
							type="checkbox" name="ID" 
							value="<pg:cell colName="TABLE_NAME" defaultValue=""/>">										
						</td>
						<td width="8%">
							<pg:cell colName="TABLE_NAME" defaultValue=""/>					</td>
						<td width="8%">
							<pg:cell colName="TABLE_ID_NAME" defaultValue=""/>						</td>
						<td width="28%">
							<pg:cell colName="TABLE_ID_INCREMENT" defaultValue=""/></td>
						
						<td width="6%">
							<pg:cell colName="TABLE_ID_VALUE" defaultValue=""/>						</td>
						<td width="9%">
							<pg:cell colName="TABLE_ID_GENERATOR" defaultValue=""/>						</td>
						
						<td width="10%" height='30'><pg:cell colName="TABLE_ID_TYPE" defaultValue=""/></td>
						<td width="10%" height='30'><pg:cell colName="TABLE_ID_PREFIX" defaultValue=""/></td>
					</tr>
					</pg:list>
					<tr class="labeltable_middle_tr_01">
						<td colspan=11 ><div class="Data_List_Table_Bottom"> 
							共
							<pg:rowcount />
							条记录
							每页显示15条
							<pg:index />					</div>  </td>
					</tr>
					<input id="queryString" name="queryString" value="<pg:querystring/>" type="hidden">
					<tr></tr>
				</pg:pager>


直接从数据库获取数据:

<pg:list statement="select * from tableinfo order by table_id_value desc" 
	    		  dbname="bspf">
		
			<tr class="cms_data_tr" id="<pg:cell colName="table_name" defaultValue=""/>">
				<td>
					<pg:cell colName="table_name" defaultValue=""/>
				</td> 
				<td>
					<pg:cell colName="table_id_name" defaultValue="" />
				</td>
				<td class="tablecells" align=center height='30' width="5%">
					<pg:cell colName="table_id_value" defaultValue=""/>
				</td>	
			</tr>
		</pg:list>


和list嵌套使用:

<pg:list requestKey="serverHelloListBean" >			<pg:cell colName="name"/>
       <pg:list colName="innerdatas">
        <pg:cell colName="innername"/>
  <!--获取外围list的属性字段值,index是外层list索引,最外层为0-->
        <pg:cell index="0" colName="name"/>

       </pg:list>

</pg:list>


list标签还可嵌套在beaninfo、map标签中使用。list标签还可以输出数组的元素值:

<pg:list requestKey="serverHelloArray" >
								<pg:rowid increament="1"/> <pg:cell />
							</pg:list>


2.4.cell标签

cell标签典型用法如下:
<pg:cell colName="id" />//默认输出值为""串
<pg:cell colName="id" defaultValue="mm"/>//默认输出值为"mm"串
<pg:cell colName="datea" dateformat="yyyy-MM-dd"/>

<pg:cell colName="id" maxlength="10"/>//超过最大长度10将被截断
<pg:cell colName="id" maxlength="10" replace="..."/>//超过最大长度10将被截断,截断的串将被replace指定的值替换掉

cell标签可以嵌套在beaninfo、list、map标签中使用也可以单独使用,单独使用的方法如下:

<pg:cell actual="${param.name}" />//直接输出el表达式${param.name}代表的值。


2.5.beaninfo标签
beaninfo标签用来展示po详细信息的标签,具体用法有从request,session,pageContext中获取要展示的对象,或者从db中获取要展示的数据,或者嵌套在list,map,beaninfo标签中展示属性对应的对象。

从request获取要展示的对象:

<pg:beaninfo requestKey="serverHelloMapBean" >
								<pg:cell colName="name"/>
							</pg:beaninfo>


从db中获取要展示的数据:
<pg:beaninfo statement="select * from tableinfo where lower(table_name)='td_sm_user' order by table_id_value desc" 
	    		  dbname="bspf">
		
			<tr class="cms_data_tr" id="<pg:cell colName="table_name" defaultValue=""/>">
				<td>
					<pg:cell colName="table_name" defaultValue=""/>
				</td> 
				<td>
					<pg:cell colName="table_id_name" defaultValue="" />
				</td>
				<td class="tablecells" align=center height='30' width="5%">
					<pg:cell colName="table_id_value" defaultValue=""/>
				</td>	
			</tr>
		</pg:beaninfo>


嵌套在list中使用:
<pg:list requestKey="serverHelloListBean" >			<pg:cell colName="name"/>
       <pg:beaninfo colName="innerdatas">
        <pg:cell colName="innername"/>
  <!--获取外围list的属性字段值,index是外层list索引,最外层为0-->
        <pg:cell index="0" colName="name"/>

       </pg:beaninfo>

</pg:list>




2.6.map、mapkey标签
map标签用来迭代展示map中的所有对象详细信息,mapkey标签在map标签中使用,用来输出map中的key值,map标签展示的数据可以从request,session,pagecontext中获取,也可以嵌套在list,beaninfo,map标签中使用。

从request获取要展示的对象:

<pg:map requestKey="serverHelloMapBean" >
	
         <pg:mapkey/>
<pg:cell colName="name"/>
							</pg:map>



嵌套在list中使用:
<pg:list requestKey="serverHelloListBean" >	
		<pg:cell colName="name"/>
       <pg:map colName="innerdatas">
<pg:mapkey/>
        <pg:cell colName="innername"/>
  <!--获取外围list的属性字段值,index是外层list索引,最外层为0-->
        <pg:cell index="0" colName="name"/>

       </pg:map>

</pg:list>


map标签还可以展示Map<Stirng,String>等基础数据类型value的迭代:
<table>
	    <h3>map<String,String>字符串信息迭代功能</h3>
		<pg:map requestKey="mapstrings">
		
			<tr class="cms_data_tr">
				<td>
					mapkey:<pg:mapkey/>
				</td> 
				<td>
					value:<pg:cell/>
				</td> 
				
			</tr>
		</pg:map>
		
		
	</table>



2.7.pager、listdata、querystring、rowcount、param、index、title、notify标签

pager标签主要用来和index、listdata、list等标签或者mvc框架控制器方法结合实现分页功能,分页数据可以从数据加载器中获取,也可以从db中直接或取,还可以从mvc控制器方法中获取。另外还可以和ajax结合在一个页面中加载多个分页模块。

从数据加载器中获取数据:
<pg:listdata dataInfo="test.pager.TableInfoListData" keyName="TableInfoListData" />
				<!--分页显示开始,分页标签初始化-->
				<pg:pager maxPageItems="15" scope="request" data="TableInfoListData" 
						  isList="false">
<pg:param name="table_name"/> 
					<tr >
						<!--设置分页表头-->
					<pg:header>									
										
						<td width="2%" align=center style="width:5%">
						<input class="checkbox" 
							type="checkBox" hidefocus=true 
							name="checkBoxAll" 
							onClick="checkAll('checkBoxAll','ID')"> 
						</td>
						<pg:title nowrap="true" width="5%" title="TABLE_NAME"
											sort="false" colName="" className="report_header"/>
						<pg:title nowrap="true" width="5%" title="TABLE_ID_NAME"
											sort="true" colName="TABLE_ID_NAME" className="report_header"/>
						
											</pg:header>									
					</tr>
				<pg:notify>
						<tr  class="labeltable_middle_tr_01">
							<td colspan=100 align='center' height="18px">
								没有数据
							</td>
						</tr>
				</pg:notify>

					
				<pg:list  autosort="false">
					<tr class="cms_report_tr">
						

						<td width="2%" align=center style="width:5%">
							<input class="checkbox" hideFocus onClick="checkOne('checkBoxAll','ID')" 
							type="checkbox" name="ID" 
							value="<pg:cell colName="TABLE_NAME" defaultValue=""/>">										
						</td>
						<td width="8%">
							<pg:cell colName="TABLE_NAME" defaultValue=""/>					</td>
						<td width="8%">
							<pg:cell colName="TABLE_ID_NAME" defaultValue=""/>						</td>
											</tr>
					</pg:list>
					<tr class="labeltable_middle_tr_01">
						<td colspan=11 ><div class="Data_List_Table_Bottom"> 
							共
							<pg:rowcount />
							条记录
							每页显示15条
							<pg:index />					</div>  </td>
					</tr>
					<input id="queryString" name="queryString" value="<pg:querystring/>" type="hidden">
					<tr></tr>
				</pg:pager>


其中listdata标签指定了分页标签的数据加载器,并将加载器存放在request的attribute属性TableInfoListData中,pager标签通过data属性引用该加载器,并且指定了每页最多显示15条记录;param 标签用来记录页面请求参数以便上下翻页时不丢失请求或者查询参数;notify标签用来输出没有数据的提示信息;list标签用来迭代输出当页数据;rowcount标签输出总记录数;index标签输出以下内容:
上下分页导航按钮
共几页,每页多少条记录,调整到第几页,设置每页记录数等等
querystring标签用来输出页面所有参数串,用来方便进行处理和操作后任然跳回到当前页面。

从数据库中直接获取数据,这个和上面的用法的唯一区别就是:

不需要listdata标签,只需要将pager标签如下使用即可:
<pg:pager statement="select * from sqltest where rownum < 10 order by object_name " 
	    		  dbname="portal" isList="false" >


和ajax结合在一个页面中加载多个分页模块的使用方法:
主页面内容:
  <pg:config/>
	<body>
			<div id="pagecontainer">
				<script type="text/javascript">
				$(document).ready(function(){
					  $("#pagecontainer").load("pagerqueryuser.htm #pagecontent");
					});
				</script>
			</div>
			
			<div id="pagecontainer1">
				<script type="text/javascript">
				$(document).ready(function(){
					  $("#pagecontainer1").load("pagerqueryuser1.htm #pagecontent");
					});
				</script>
			</div>
	</body>


两个从页面内容基本上差不多:
<div id="pagecontent">
              
			   	<pg:pager scope="request" data="users" 
						  isList="false" containerid="pagecontainer" selector="pagecontent">
				<pg:param name="userName" encode="true"/>
			<table class="genericTbl">
					<tr >
						<pg:title nowrap="true" width="8%" title="用户ID:"
											sort="true" colName="userId" className="order1 sorted"/>	
						
						<pg:title nowrap="true" width="8%" title="用户NAME:"
											sort="true" colName="userName" className="order1 sorted"/>	
					</tr>
					<pg:notify>
					<tr class="cms_report_tr">
					<td width="10%" align=center colspan="100" style="width:5%">
						没有数据
					</td>
					</tr>				
				</pg:notify>
				<pg:list autosort="false">
					<tr class="even">
						
						 <td ><pg:cell colName="userId" defaultValue=""/>  
                         </td>  
                         <td width="8%" >  
                          <pg:cell colName="userName" defaultValue=""/></td>  
					</tr>
				</pg:list>
			</table>
			<div><pg:index/></div>
			</pg:pager> 
</div>


需要说明的就是pager标签上新加的两个属性
containerid="pagecontainer" //代表main页面的div容器id,这个分页list的内容将在该div中展示
selector="pagecontent" //表示分页页面内容的选择器

data="users"对应的ListInfo对象直接从mvc控制器方法设置到request的attribute属性中。例如:
	public String pagerqueryuser1(@PagerParam(name=PagerParam.SORT ) String sortKey,
			@PagerParam(name=PagerParam.DESC,defaultvalue="true") boolean desc,
			@PagerParam(name=PagerParam.OFFSET) long offset,
			@PagerParam(name=PagerParam.PAGE_SIZE,defaultvalue="2") int pagesize,
			@RequestParam(name = "userName") String username ,
			ModelMap model) throws UserManagerException {
		ListInfo userTemp = userService.getUsersNullRowHandler(username,offset, pagesize);
		model.addAttribute("users", userTemp);
		return "jquerypagine/page1";
	}


2.8.index标签
index标签作为导航标签具有以下实用的属性:
export-控制导航键是否出现得属性:000000000(9位) 分别对应于"第几页"、“共几页”、“首页”、“下一页”、“上一页”、“尾页”、“跳转到”,“每页显示几条记录”,"共多少条记录"
对应得位置上的值为0时标示显示该按钮,为1时不显示。

useimage-导航按钮是否使用图片,默认值为false 只有useimage=true时,imagedir和imageextend才起作用
如果useimage=true时,没有指定imagedir和imageextend属性,那么采用默认属性 使用方法 <pg:index
useimage="true" imagedir="/include/images" imageextend=" border=0 "/>

useimage-如果useimage=true时,没有指定imagedir和imageextend属性,那么采用默认属性 使用方法 <pg:index
useimage="true" imagedir="/include/images" imageextend=" border=0 "/>
imagedir-导航按钮图片存放目录,存放的图片名称为: first.gif-首 页 next.gif-下一页 pre.gif-上一页
last.gif-尾 页 默认值为:/include/images

imageextend-导航图片的扩展属性串,默认值为:" border=0 "
classname-中间页面样式名称,类似于google的页码1页,2页的样式

tagnumber-设置展示的中间页面数,默认为-1,即不展示中间页
centerextend-中间页扩展属性,用来设置每个页面元素的额外css属性和其他扩展属性

sizescope-可选择页面显示记录数,默认为
"5","10","20","30","40","50","60","70","80","90","100"
用户可以自定义这个范围,以逗号分隔即可
如果在pager标签和list标签上指定的maxPageItems属性对应的页面记录条数不在sizescope范围中,那么
将把maxPageItems作为第一个选项加入到sizescope中

2.9.rowid、rowcount、pagesize标签
rowid标签用来输出list和map循环中的行号,具体使用方法如下:
<pg:rowid /> //默认从0开始
<pg:rowid increament="1"/>  //从1开始
<pg:rowid  offset="true"/>  offset为用来表示每页是否都从0开始重新计数

rowcount标签用来输出总记录数,用法如下:
<pg:rowcount />

pagesize用来输出当前页面记录,用法如下:
<pg:pagesize />

2.10 convert标签
convert标签主要用来实现属性值的转码,也就是说经属性值和名称的映射关系放到map中,然后通过convert标签结合colName和code属性结合来实现代码转换:

<%
Map aaaaa = new HashMap();
aaaaa.put("1","男");
aaaaa.put("2","女");
request.setAttribute("codes",aaaaa);
%>
<pg:convert convertData="codes" colName="sex"/>
2.11.标签内置变量
list、map、beaninfo标签都有一些内置java变量,可以直接在标签中使用:
list、map标签:dataSet对象,可以使用java代码访问该对象获取数据
beaninfo标签:beanifo对象,可以使用java代码访问该对象获取数据


未完待续。
   发表时间:2011-08-01  
不要大段地没头没尾地介绍好吗?可以弄成chm形式的。整体介绍好吗
0 请登录后投票
   发表时间:2011-08-04  
wangflood 写道
不要大段地没头没尾地介绍好吗?可以弄成chm形式的。整体介绍好吗


发帖的时候确实没有考虑这么多,只是想着要写这么一个贴子,希望对需要的朋友有所帮助
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics