Taglig组件

SpringSide中选用的TagLib组件 

1.Jodd Form taglib

Jodd Form的使用极其简单,因为太简单了,才会名不见经传而被我们选用,让我们罔顾各大Framework的Form Tag.

他只要把<form>的头尾以<jodd:form bean= "mybean">包住即可,就会自动绑定mybean的所有同名属性到普通html标记--input, selectbox, checkbox,radiobox.....在这些input框里不用再写任何代码

  可见,它的好处一是节约代码,二是保留了html版的form tag, 不需要用一套taglib来代替

  而且支持内嵌对象的绑定,如book.category.name。

 比那些需要使用非纯html标记的<ww:input>,逐个绑定input框,select框的Form Tag,虽减了些许灵活性,但实在方便得太厉害。

如果属性来自于request,而不是某个java bean,写<jodd:form bean= "request">

jodd采用的是普通的bean反射,调用所有属性的toString()函数。

注意,jodd在html tag不含value="xxx"属性时才会自动绑定。如果某个input框你不希望jodd自动绑定,或者默认的toString()不能满足要求时,可以手工为该input框写上 value="xxxx",jodd看到你已经定义了属性值,就会自动绕开。

2.pager-taglib组件

author : jeffjie 

 Pager-taglib 2.0 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离。这样一套标签库,你想你的分页效果怎样就能怎样。

这里简单讲解下SpringSide示例中的几个标签的意义及定制自已风格的分页页面的方法:

一、SpringSide的范例见/home/block/newBooks.jsp。

1、<pg:pager>,在这个标签库里就充当着一个领袖的作用,一切子标签都在它里面工作。就以上出现的参数进行解释一下:
items:数据的纪录数,非页数
url:分页跳进是使用的URL,该URL不可带参数,因为Pager会在给出的URL后面加上"?page.offset="来标识当前偏移量。
index:向前或向后一次大跳跃之后,当前页面在各个页数的什么位置,默认为Center。
maxPageItems:显示最多的纪录数/页
maxIndexPages:显示最多的分页数/次,如设为5的话,则会出现这样的情况 1 2 3 4 5 .或 3 4 5 6 7 这样的形式,其实她自带的DEMO都喜欢把页数展现出来排成一排。
isOffset:与pg:item配套使用,pg:item是用来显示数据的,实际上大多数情况是我们不需要这个标签,该值默认即可
export:这个属性比较重要,官方文档也对此作好相对长篇幅的说明。这个属性是让标签给你暴露什么变量,当然这些变量是有选择的,如在Pager标签里,可以暴露出来的变量有pageOffset及pageNumber,即页码偏移量及页码。通过这两个变量名,可以在Jsp或Java里面从Request里获得。Export属性接受的值还有表达式,如currentPage=pageNumber表示,把pageNumber的值暴露出来,并赋给一个叫CurrentPage的变量,这个变量将被保存到Request中,在Jsp或Java中可以得到。
scope:有Reuqest、page可选

2、<pg:param>这个标签很有用,用来设置将要加入到URL的变量。使用Name属性指定即可。在示范时,因为Spring的Action的URL后面带参数,为/springside/bookstore.do?method=newBooks这时URL

3、<pg:index>这个标签说明分页显示开始了。跳进我们Include的页面。再看看详细的情况。

二、自定义分页导航页

用来定义分页导航页的标签有pg:first、pg:skip、pg:pages、pg:pre、pg:next、pg:last等。从名字上很容易看出他们是干什么用的。Tager本身带的Demo演示了六种以上的自定义风格,SpringSide里面则演于了与Ajax结合的分页导航。详见/common/pagination/simple_ajax.jsp

另外一个范例

更详尽的资料参考官方网站