基于struts2的程序设计中,一定会用到struts自带的标签库,提供了一些常用的表单元素和逻辑控制标签的封装,而我们在项目中常用的分页标签却没有直接提供,通过学习struts2的源码分析我们可以看到,struts2的标签库默认是使用freemarker模板技术实现的,如图
在各个单独的模板里定义了具体的页面展现元素,因此我们可以参考官方标签的做法来定制我们的分页标签
1.编写分页组件类Pagination
这个类用于向模板中传递参数使用的
package com.crazycoder2010.demo.pagination;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.components.UIBean;
import org.apache.struts2.views.annotations.StrutsTag;
import com.opensymphony.xwork2.util.ValueStack;
@StrutsTag(
name="pagination",
tldTagClass="com.crazycoder2010.demo.pagination.PaginationTag",
description="Render a pagination component",
allowDynamicAttributes=true)
public class Pagination extends UIBean {//继承自Struts2的标签Bean
private String pager;//分页对象
private String formId;//查询时需要提交的表单ID
public Pagination(ValueStack stack, HttpServletRequest request,
HttpServletResponse response) {
super(stack, request, response);
}
private static final String T