1、UTF-82. 2.2.3jsp-version1.2short-nametangs6. uri/tangs7. display-nameTangsTags/display-name8. 9. tag10. namepages11. tag-classcom.tangs.tag.PageTag/标签类 12. body-contentempty13. attribute/标签中的属性 14. cpagetrue/是否必须 16. rtexprvalue/rtexprvalue/表示该自定义标签的某属性的值可以直接指定或者通过动态计算指定 17. /attribute18. 19. total2
2、0. 21. 22. 23. 24. url29. xml version= encoding=DOCTYPE taglib PUBLIC -/Sun Microsystems, Inc./DTD JSP Tag Library 1.2/EN Tangs Tags /标签类 /标签中的属性 /属性名 /是否必须 /表示该自定义标签的某属性的值可以直接指定或者通过动态计算指定2.编写标签类PageTag.java1. packagecom.tangs.tag;3. importcom.opensymphony.xwork2.util.ValueStack;4. importjavax.servl
3、et.http.HttpServletRequest;5. importjavax.servlet.http.HttpServletResponse;6. importponents.Component;7. importorg.apache.struts2.views.jsp.ComponentTagSupport;9. /* *分页标签 authortangs */13. publicclassPageTagextendsComponentTagSupport privateStringcpage;/当前页 total;/总页数 url;/请求地址 publicvoidsetCpage(S
4、tringcpage)this.cpage= setTotal(Stringtotal)this.totalsetUrl(Stringurl)this.url29. 30. Override31. ComponentgetBean(ValueStackarg0,HttpServletRequestarg1,HttpServletResponsearg2)32. returnnewPages(arg0);/返回PagesComponent,分页的逻辑处理都在这个Component中 33. 34. 35. /获得参数 36. protectedpopulateParams()37. super.
5、populateParams();38. 39. Pagespages(Pages)component;40. pages.setCpage(cpage);41. pages.setTotal(total);42. pages.setUrl(url);43. 44. package com.tangs.tag;import com.opensymphony.xwork2.util.ValueStack;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import
6、 ponents.Component;import org.apache.struts2.views.jsp.ComponentTagSupport;/* 分页标签* author tangs*/public class PageTag extends ComponentTagSupport private String cpage; /当前页private String total; /总页数private String url; /请求地址public void setCpage(String cpage) this.cpage = cpage;public void setTotal(S
7、tring total) this.total = total;public void setUrl(String url) this.url = url;Overridepublic Component getBean(ValueStack arg0, HttpServletRequest arg1, HttpServletResponse arg2) return new Pages(arg0); /返回Pages Component,分页的逻辑处理都在这个Component中/获得参数protected void populateParams() Pages pages = (Pages
8、)component; Pages.javajava.io.IOException;java.io.Writer;java.util.logging.Level;java.util.logging.Logger;8. import10. /* 分页逻辑Bean 14. publicgetCpage()getTotal()getUrl()44. Pages(ValueStackarg0)45. super(arg0);46. 47. 48. 49. booleanstart(Writerwriter)50. resultsuper.start(writer);51. try52. StringB
9、uilderstrStringBuilder();53. isValidtrue;54. 55. /从ValueStack中取出数值 56. if(isValid)57. (total.startsWith(%)&total.endsWith()58. totaltotal.substring(2,total.length()-1);59. (String)this.getStack().findValue(total);60. =nullfalse:61. else62. false;63. 64. 65. 66. (cpage.startsWith(cpage.endsWith(67. c
10、pagecpage.substring(2,cpage.length()-1);68. (String)this.getStack().findValue(cpage);69. 70. 71. 72. 73. 74. 75. (url.startsWith(url.endsWith(76. urlurl.substring(2,url.length()77. (String)this.getStack().findValue(url);78. 79. 80. 81. 82. 83. 84. 85. IntegercpageIntInteger.valueOf(cpage);86. /当前页与总页数相等 87. (cpage.equals(total)88. /如果total1,则无需分页,显示“第1页共1页” 89. (1.equals(total)90. str.append(第+页);91. 共92. 93. /到达最后一页,显示“首页上一页末页” 94. ahref=95. str.append(url);96. cpage=1&total=+total+url=+url);97. 首页98. 99. cpage=(cpageInt1)total+100. 上一页101. 102.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1