ECSide是有一个基于jsp tag的开源列表组件。
简单的说,它就是一组可以帮助你快速实现强大的列表的jsp标签。
它的工作原理:
1、 Ecside可以展现列表(R,其实是分页),排序(S,其实是orderby),过滤(F 其实是where)。
2、 他的实现是通过两种方式来实现的。一种是基于Java的collection层。一种是基于数据库层。
第一种:基于Java的collection层:
你所做的:1、将列表数据放入到collection中交给EC处理
2、排序,过滤基于全部数据。
缺点:数据量不能太大。
第二种:基于数据库层:
你所做的: 1、查询出所有的数据的总数。
2、取得一个EC提供的Limit对象
3、在该对象的帮助下去舔R S F操作的相关信息。(如数据起止行数,排列顺序,过滤内容等)。
4、将R S F操作相关信息传入DAO内,来进行SQL语句拼装。
5、通过Dao查询当前页所显示数据,放入collection。
6、将collection传给列表页面
总的思想:
取得LIMIT --> 设置条件 --> DAO中拼接SQL
--> 放到collection --> 将collection传给页面
下面讲一个简单实例:
先分析一下JSP页面信息。
<ec:table
<span style="color:#FF0000;">items="obj"</span>
action="${pageContext.request.contextPath}/viewUserList.do"
imagePath="${pageContext.request.contextPath}/images/table/*.gif"
>
<ec:row highlightRow="true">
<ec:column property="loginName"title="用户名"/>
<ec:column property="name" title="姓名"/>
<ec:column property="mobile" title="手机号"/>
<ec:column property="address"title="地址"/>
<ec:column property="email"title="Email"/>
</ec:row>
</ec:table>
第一点:如何调用到后台?
1.<ec:table>标签中items的值(obj)与action中的属性对应。
它就相当于一个指针,指向一个collection集合,这个集合必须是你放到request中的 obj
2.用struts2记得写set/get
第二点:Property属性设置。
Property的值就是对象的属性,这里的属性用什么,就写什么,对象在页面不用的属性,可以不写。
第三点:标签属性。
标签属性可以查看文档,具体在之后用到什么就会总结什么。