- 浏览: 10120 次
- 性别:
- 来自: 上海
文章分类
最新评论
[代码] 自定义标签库中的用于输出表格分页按钮的组件
view sourceprint?
01 public class PageTagComponent extends Component {
02 /**
03 * 分页工具
04 */
05 private PageUtil pageUtil;
06 /**
07 * 数据读取URL
08 */
09 private String action = "#";
10
11 private String firstPageHTML = "";
12 private String prePageHTML = "";
13 private String nextPageHTML = "";
14 private String lastPageHTML = "";
15 private String currentPageHTML = "";
16 private String totalPageHTML = "";
17
18 public PageTagComponent(ValueStack stack) {
19 super(stack);
20 }
21
22 /**
23 * <div>
24 * <a>首页</a><a>上一页</a><a>下一页</a><a>尾页</a><span>当前页:13</span><span>总页数:54
25 * </span> </div>
26 */
27 @Override
28 public boolean start(Writer writer) {
29 generateHTML();
30 StringBuilder sb = new StringBuilder();
31 sb.append(firstPageHTML);
32 sb.append(prePageHTML);
33 sb.append(nextPageHTML);
34 sb.append(lastPageHTML);
35 sb.append(currentPageHTML);
36 sb.append(totalPageHTML);
37
38 try {
39 writer.write(sb.toString());
40 } catch (IOException e) {
41 e.printStackTrace();
42 }
43 return super.start(writer);
44 }
45
46 private void generateHTML() {
47 if (pageUtil.getCurrentPageCount() - 1 <= 1) {
48 prePageHTML = "<a href='" + action + "?pageUtil.currentPageCount=1'>上一页</a>";
49 } else {
50 prePageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + (pageUtil.getCurrentPageCount() - 1) + "'>上一页</a>";
51 }
52
53 if (pageUtil.getCurrentPageCount() + 1 >= pageUtil.getPageCount()) {
54 nextPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + pageUtil.getPageCount() + "'>下一页</a>";
55 } else {
56 nextPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + (pageUtil.getCurrentPageCount() + 1) + "'>下一页</a>";
57 }
58
59 firstPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=1'>首页</a>";
60 lastPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + pageUtil.getPageCount() + "'>尾页</a>";
61 currentPageHTML = "<span>当前页:" + pageUtil.getCurrentPageCount() + "</span>";
62 totalPageHTML = "<span>总页数:" + pageUtil.getPageCount() + "</span>";
63 }
64 }
[代码] 自定义的分页标签
view sourceprint?
01 public class PageTag extends ComponentTagSupport {
02 /**
03 * 分页工具
04 */
05 private PageUtil pageUtil;
06 /**
07 * 数据读取URL
08 */
09 private String action = "#";
10
11 @Override
12 public Component getBean(ValueStack valueStack, HttpServletRequest request, HttpServletResponse response) {
13 return new PageTagComponent(valueStack);
14 }
15
16 @Override
17 protected void populateParams() {
18 super.populateParams();
19 PageTagComponent pageTageComponent = (PageTagComponent) component;
20 pageTageComponent.setPageUtil(pageUtil);
21 pageTageComponent.setAction(action);
22 }
23 }
[代码] Action中处理用户请求的方法
view sourceprint?
1 public String Search() {
2 pageUtil = ipAddressService.getAllIpAddress(pageUtil,ip);
3 return "Search"+ SUCCESS;
4 }
[代码] Service中初始化分页组件
view sourceprint?
1 public PageUtil getAllIpAddress(PageUtil pageUtil, String ip) {
2 pageUtil.setTotalCount(getAllIpAddress().size());
3 return ipAddressHibernateDao.queryAllEntity("from IpAddress where ip = " + ip, pageUtil);
4 }
[代码] Dao中的分页查询
view sourceprint?
01 public PageUtil queryAllEntity(final String hql, PageUtil pageUtil) {
02 if (pageUtil == null) {
03 pageUtil = new PageUtil();
04 }
05 final int startRows = pageUtil.getPageSize() * (pageUtil.getCurrentPageCount() - 1);
06 final int rowSize = pageUtil.getPageSize();
07 List result = getHibernateTemplate().executeFind(new HibernateCallback() {
08 @Override
09 public Object doInHibernate(Session session) throws HibernateException, SQLException {
10 Query query = session.createQuery(hql);
11 query.setFirstResult(startRows);
12 query.setMaxResults(rowSize);
13 return query.list();
14 }
15 });
16 pageUtil.setDatas(result);
17 return pageUtil;
18 }
[代码] JSP中tag的使用以及表格内容的显示
view sourceprint?
01 <%@taglib prefix="wu" uri="/web-utils" %>
02 <table class="table" width="850px">
03 <thead>
04 <tr>
05 <th width="50px"><s:text name="title.index"/></th>
06 <th width="100px"><s:text name="title.ipAddress.ip"/></th>
07 <th width="100px"><s:text name="title.ipAddress.mac"/></th>
08 <th width="100px"><s:text name="title.ipAddress.switchIP"/></th>
09 <th width="100px"><s:text name="title.ipAddress.port"/></th>
10 <th width="100px"><s:text name="title.ipAddress.addressRemark"/></th>
11 <th width="100px"><s:text name="title.ipAddress.addressState"/></th>
12 <th width="100px"><s:text name="title.ipAddress.addressType"/></th>
13 <th width="100px"><s:text name="title.operation"/></th>
14 </tr>
15 </thead>
16 <tbody>
17 <s:if test="pageUtil.datas.size > 0">
18 <s:iterator value="pageUtil.datas" status="ipAddress">
19 <tr>
20 <td width="50px"><s:property value="#ipAddress.index + 1"/></td>
21 <td width="100px"><a href="<s:url action='ipAddressDetailAction' namespace='/admin'/>?id=${id}"><s:property value="ip"/></a></td>
22 <td width="100px"><s:property value="mac"/></td>
23 <td width="100px"><s:property value="switchIp"/></td>
24 <td width="100px"><s:property value="port"/></td>
25 <td width="100px"><a href="<s:url action='ipAddressRemarkDetailAction' namespace='/admin'/>?id=${ipAddressRemark.id}"><s:property value="ipAddressRemark.remarkName"/></a></td>
26 <td width="100px"><a href="<s:url action='ipAddressStateDetailAction' namespace='/admin'/>?id=${ipAddressState.id}"><s:property value="ipAddressState.stateName"/></a></td>
27 <td width="100px"><a href="<s:url action='ipAddressTypeDetailAction' namespace='/admin'/>?id=${ipAddressType.id}"><s:property value="ipAddressType.typeName"/></a></td>
28 <td width="100px">
29 <a href="<s:url action='ipAddressEditPageAction' namespace='/admin'/>?id=${id}"><s:text name="button.edit"></s:text></a>
30 <a href="<s:url action='ipAddressDeleteAction' namespace='/admin'/>?id=${id}"><s:text name="button.delete"></s:text></a>
31 </td>
32 </tr>
33 </s:iterator>
34 </s:if>
35 <s:else>
36 <tr><td colspan="9" class="tdNoData"><s:text name="label.noData"/></td></tr>
37 </s:else>
38 </tbody>
39 </table>
40 <s:if test="pageUtil.pageCount > 1">
41 <div class="pageTag" style="width: 850px;">
42 <s:url action='ipAddressListAction' namespace='/admin' var="address"/>
43 <wu:page action="${address}" pageUtil="${pageUtil}"/>
44 </div>
45 </s:if>
[代码] 自定义标签配置文件
view sourceprint?01 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
02 <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03 version="2.0"
04 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
05 <display-name>"Web Utils"</display-name>
06 <tlib-version>1.0</tlib-version>
07 <short-name>wu</short-name>
08 <uri>/web-utils</uri>
09 <tag>
10 <description><![CDATA[Print table pages]]></description>
11 <name>page</name>
12 <tag-class>com.kmairport.webapp.tag.PageTag</tag-class>
13 <body-content>empty</body-content>
14 <attribute>
15 <description><![CDATA[request address]]></description>
16 <name>action</name>
17 <required>true</required>
18 <rtexprvalue>true</rtexprvalue>
19 </attribute>
20 <attribute>
21 <description><![CDATA[page util]]></description>
22 <name>pageUtil</name>
23 <required>true</required>
24 <rtexprvalue>true</rtexprvalue>
25 </attribute>
26 </tag>
27 </taglib>
28 备注:该文件保存为web-utils.tld,放在WEB-INF/目录下
view sourceprint?
01 public class PageTagComponent extends Component {
02 /**
03 * 分页工具
04 */
05 private PageUtil pageUtil;
06 /**
07 * 数据读取URL
08 */
09 private String action = "#";
10
11 private String firstPageHTML = "";
12 private String prePageHTML = "";
13 private String nextPageHTML = "";
14 private String lastPageHTML = "";
15 private String currentPageHTML = "";
16 private String totalPageHTML = "";
17
18 public PageTagComponent(ValueStack stack) {
19 super(stack);
20 }
21
22 /**
23 * <div>
24 * <a>首页</a><a>上一页</a><a>下一页</a><a>尾页</a><span>当前页:13</span><span>总页数:54
25 * </span> </div>
26 */
27 @Override
28 public boolean start(Writer writer) {
29 generateHTML();
30 StringBuilder sb = new StringBuilder();
31 sb.append(firstPageHTML);
32 sb.append(prePageHTML);
33 sb.append(nextPageHTML);
34 sb.append(lastPageHTML);
35 sb.append(currentPageHTML);
36 sb.append(totalPageHTML);
37
38 try {
39 writer.write(sb.toString());
40 } catch (IOException e) {
41 e.printStackTrace();
42 }
43 return super.start(writer);
44 }
45
46 private void generateHTML() {
47 if (pageUtil.getCurrentPageCount() - 1 <= 1) {
48 prePageHTML = "<a href='" + action + "?pageUtil.currentPageCount=1'>上一页</a>";
49 } else {
50 prePageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + (pageUtil.getCurrentPageCount() - 1) + "'>上一页</a>";
51 }
52
53 if (pageUtil.getCurrentPageCount() + 1 >= pageUtil.getPageCount()) {
54 nextPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + pageUtil.getPageCount() + "'>下一页</a>";
55 } else {
56 nextPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + (pageUtil.getCurrentPageCount() + 1) + "'>下一页</a>";
57 }
58
59 firstPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=1'>首页</a>";
60 lastPageHTML = "<a href='" + action + "?pageUtil.currentPageCount=" + pageUtil.getPageCount() + "'>尾页</a>";
61 currentPageHTML = "<span>当前页:" + pageUtil.getCurrentPageCount() + "</span>";
62 totalPageHTML = "<span>总页数:" + pageUtil.getPageCount() + "</span>";
63 }
64 }
[代码] 自定义的分页标签
view sourceprint?
01 public class PageTag extends ComponentTagSupport {
02 /**
03 * 分页工具
04 */
05 private PageUtil pageUtil;
06 /**
07 * 数据读取URL
08 */
09 private String action = "#";
10
11 @Override
12 public Component getBean(ValueStack valueStack, HttpServletRequest request, HttpServletResponse response) {
13 return new PageTagComponent(valueStack);
14 }
15
16 @Override
17 protected void populateParams() {
18 super.populateParams();
19 PageTagComponent pageTageComponent = (PageTagComponent) component;
20 pageTageComponent.setPageUtil(pageUtil);
21 pageTageComponent.setAction(action);
22 }
23 }
[代码] Action中处理用户请求的方法
view sourceprint?
1 public String Search() {
2 pageUtil = ipAddressService.getAllIpAddress(pageUtil,ip);
3 return "Search"+ SUCCESS;
4 }
[代码] Service中初始化分页组件
view sourceprint?
1 public PageUtil getAllIpAddress(PageUtil pageUtil, String ip) {
2 pageUtil.setTotalCount(getAllIpAddress().size());
3 return ipAddressHibernateDao.queryAllEntity("from IpAddress where ip = " + ip, pageUtil);
4 }
[代码] Dao中的分页查询
view sourceprint?
01 public PageUtil queryAllEntity(final String hql, PageUtil pageUtil) {
02 if (pageUtil == null) {
03 pageUtil = new PageUtil();
04 }
05 final int startRows = pageUtil.getPageSize() * (pageUtil.getCurrentPageCount() - 1);
06 final int rowSize = pageUtil.getPageSize();
07 List result = getHibernateTemplate().executeFind(new HibernateCallback() {
08 @Override
09 public Object doInHibernate(Session session) throws HibernateException, SQLException {
10 Query query = session.createQuery(hql);
11 query.setFirstResult(startRows);
12 query.setMaxResults(rowSize);
13 return query.list();
14 }
15 });
16 pageUtil.setDatas(result);
17 return pageUtil;
18 }
[代码] JSP中tag的使用以及表格内容的显示
view sourceprint?
01 <%@taglib prefix="wu" uri="/web-utils" %>
02 <table class="table" width="850px">
03 <thead>
04 <tr>
05 <th width="50px"><s:text name="title.index"/></th>
06 <th width="100px"><s:text name="title.ipAddress.ip"/></th>
07 <th width="100px"><s:text name="title.ipAddress.mac"/></th>
08 <th width="100px"><s:text name="title.ipAddress.switchIP"/></th>
09 <th width="100px"><s:text name="title.ipAddress.port"/></th>
10 <th width="100px"><s:text name="title.ipAddress.addressRemark"/></th>
11 <th width="100px"><s:text name="title.ipAddress.addressState"/></th>
12 <th width="100px"><s:text name="title.ipAddress.addressType"/></th>
13 <th width="100px"><s:text name="title.operation"/></th>
14 </tr>
15 </thead>
16 <tbody>
17 <s:if test="pageUtil.datas.size > 0">
18 <s:iterator value="pageUtil.datas" status="ipAddress">
19 <tr>
20 <td width="50px"><s:property value="#ipAddress.index + 1"/></td>
21 <td width="100px"><a href="<s:url action='ipAddressDetailAction' namespace='/admin'/>?id=${id}"><s:property value="ip"/></a></td>
22 <td width="100px"><s:property value="mac"/></td>
23 <td width="100px"><s:property value="switchIp"/></td>
24 <td width="100px"><s:property value="port"/></td>
25 <td width="100px"><a href="<s:url action='ipAddressRemarkDetailAction' namespace='/admin'/>?id=${ipAddressRemark.id}"><s:property value="ipAddressRemark.remarkName"/></a></td>
26 <td width="100px"><a href="<s:url action='ipAddressStateDetailAction' namespace='/admin'/>?id=${ipAddressState.id}"><s:property value="ipAddressState.stateName"/></a></td>
27 <td width="100px"><a href="<s:url action='ipAddressTypeDetailAction' namespace='/admin'/>?id=${ipAddressType.id}"><s:property value="ipAddressType.typeName"/></a></td>
28 <td width="100px">
29 <a href="<s:url action='ipAddressEditPageAction' namespace='/admin'/>?id=${id}"><s:text name="button.edit"></s:text></a>
30 <a href="<s:url action='ipAddressDeleteAction' namespace='/admin'/>?id=${id}"><s:text name="button.delete"></s:text></a>
31 </td>
32 </tr>
33 </s:iterator>
34 </s:if>
35 <s:else>
36 <tr><td colspan="9" class="tdNoData"><s:text name="label.noData"/></td></tr>
37 </s:else>
38 </tbody>
39 </table>
40 <s:if test="pageUtil.pageCount > 1">
41 <div class="pageTag" style="width: 850px;">
42 <s:url action='ipAddressListAction' namespace='/admin' var="address"/>
43 <wu:page action="${address}" pageUtil="${pageUtil}"/>
44 </div>
45 </s:if>
[代码] 自定义标签配置文件
view sourceprint?01 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
02 <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03 version="2.0"
04 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
05 <display-name>"Web Utils"</display-name>
06 <tlib-version>1.0</tlib-version>
07 <short-name>wu</short-name>
08 <uri>/web-utils</uri>
09 <tag>
10 <description><![CDATA[Print table pages]]></description>
11 <name>page</name>
12 <tag-class>com.kmairport.webapp.tag.PageTag</tag-class>
13 <body-content>empty</body-content>
14 <attribute>
15 <description><![CDATA[request address]]></description>
16 <name>action</name>
17 <required>true</required>
18 <rtexprvalue>true</rtexprvalue>
19 </attribute>
20 <attribute>
21 <description><![CDATA[page util]]></description>
22 <name>pageUtil</name>
23 <required>true</required>
24 <rtexprvalue>true</rtexprvalue>
25 </attribute>
26 </tag>
27 </taglib>
28 备注:该文件保存为web-utils.tld,放在WEB-INF/目录下
相关推荐
该模板是SSH框架的整合,是为了方便开发人员所搭建的架构,里面有自定义标签分页,还有许多通用方法。具体的代码大家下来看看,就不多说了
基于struts2的自定义分页标签实现的一个demo,连接数据库为Oracle
1.使用SSH集成开发 2.创建分页抽象业务包。 3.创建自定义标签(标签类PageTag和标签描述t32.tld)
该项目是本人用SSH框架整理出来的,有源代码和数据库。其中重点演示了自定义分页标签的使用方法,该标签可以实现强大的分页功能,使用十分方便,页面效果比较好。
NULL 博文链接:https://ap0406708.iteye.com/blog/537709
针对目前分页查询问题解决方案较为复杂、不易维护的问题,运用JSP自定义标签技术和HQL语言,提出了一个在SSH架构下的解决方案.该方案可有效地使分页面板的显示、处理与JSP页面分离,使用简单,功能完整,并已经成功运用于...
ssh框架,使用自定义标签分页,以及生成工资报表excel文档,整个项目结构十分严谨,试试就知道了
ssh框架下实现分页查询(显示),自定义tld标签,随意引用,方便简单。 使用说明:在jsp页面中引入page.tld文件。修改里面的关联类PageTag.java的路径。page.java为javabean类。
因为现在一般都用strut2,为了有很好的通用性,首先想到的自然是strut2的自定义标签。于是马上google一下。果然,一大堆。不过由于小弟资历浅薄,也没心思看,主要是strut2的标签本来我就觉得不大习惯,另外上个月...
xshell 5功能强悍,具备标签式的环境,动态端口转发,自定义键的映射关系,用户定义的按钮,VB脚本,显示2字节字符和国际语言支持UNICODE,支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。 xshell 5...
7.6.2 文本新闻列表分页控制自定义标签类textnewspagetag 502 7.6.3 图片新闻列表自定义标签类picnewstag 505 7.6.4 幻灯片新闻列表自定义标签类slidenewstag 507 7.6.5 struts2与ajax完全结合实现点击数加一 510...
day13_自定义标签&编码实战 day14_mysql基础 day15_mysql加强 day16_jdbc基础 day17_jdbc加强 day18_dbutils day19_分页&条件查询 day20_过滤器 day21_监听器 day22_文件上传与下载 day23_基础加强 day...
115 文章管理功能-Thymeleaf 自定义标签1 115 文章管理功能-Thymeleaf 自定义标签2 116 文章管理功能-实现字典标签1 116 文章管理功能-实现字典标签2 117 文章管理功能-实现 FastDFS 客户端 118 文章管理功能-前端 ...
115 文章管理功能-Thymeleaf 自定义标签1 115 文章管理功能-Thymeleaf 自定义标签2 116 文章管理功能-实现字典标签1 116 文章管理功能-实现字典标签2 117 文章管理功能-实现 FastDFS 客户端 118 文章管理功能-...
07 自定义分页组件 08 DjangoForm组件初识 第59章 01 Form组件之生成HTML标签 02 Form组件之详解字段 03 Form组件之常用标签示例 04 Form组件之动态绑定数据 第60章 Django序列化共6课 第61章 01 上节内容回顾...
自定义分页 Cookie是什么鬼 基于Cookie实现用户登录 基于cookie实现定制显示数据条数 带签名的Cookie CBV和FBV用户认证装饰器 本周作业 第22周 上节回顾 Django之url、Views Django之Model操作 Django之模版 ...
├─(142) 07 python全栈3 day58 自定义分页组件.avi ├─(143) 08 python全栈3 day58 DjangoForm组件初识.avi ├─(144) day58课上所有.rar (23)\\python全栈day51-60\\python全栈s3 day59;目录中文件数:8个 ├─...
3.6.4 为自定义校验器开发专用标签 169 3.6.5 使用托管Bean的方法执行校验 173 3.6.6 绑定到Bean属性的校验器 175 3.7 本章小结 177 第4章 利用JDBC和JTA访问 数据库和管理全局事务 178 4.1 JDBC和容器管理的数据源 ...
{13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {13.6.1}Wrapper}{199}{subsection.13.6.1} {13.7}DAO}{199}{section.13.7} {13.8}java.util....
Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...