<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0

    /**
    ?*
    ?*/
    package com.scitel.gdnumcommon.ctag;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;

    import com.scitel.gdnumcommon.entity.Pagination;

    /**
    ?*
    ?*
    ?* <p>Description: 分頁標簽類</p>
    ?*
    ?* <p>Copyright: Copyright (c) 2006</p>
    ?*
    ?* <p>Company: 深圳科訊數碼有限公司</p>
    ?*
    ?* @author?
    ?* @version 1.0 時間 Mar 6, 2006
    ?*/
    public class PaginationTag extends TagSupport {
    ?/**
    ? * 唯一ID
    ? */
    ?private static final long serialVersionUID = 1673491971683216709L;
    ??? /**
    ???? * 鏈接路徑
    ???? */
    ?private String path = null;
    ?/**
    ? * 分頁類保存在request中的名稱,與類名相同
    ? */
    ?private String name = null;
    ?/**
    ? * 所帶參數名稱(page)
    ? */
    ?private String parameter = null;
    ?/**
    ? *表單名稱
    ? */
    ?private String formName = null;
    ?
    ?/**
    ? * @param name The name to set.
    ? */
    ?public void setName(String name) {
    ??this.name = name;
    ?}
    ?/**
    ? * @param path The path to set.
    ? */
    ?public void setPath(String path) {
    ??this.path = path;
    ?}
    ?
    ?/**
    ? * @param parameter The parameter to set.
    ? */
    ?public void setParameter(String parameter) {
    ??this.parameter = parameter;
    ?}
    ?
    ?/**
    ? * @param formName The formName to set.
    ? */
    ?public void setFormName(String formName) {
    ??this.formName = formName;
    ?}
    ?
    ?/* (non-Javadoc)
    ? * @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
    ? */
    ?public int doStartTag() throws JspException {
    ??// TODO Auto-generated method stub
    ??Pagination pagination = null;

    ??if(this.path == null){
    ???throw new NullPointerException("path屬性不能為空");
    ??}
    ??
    ??if(this.name == null){
    ???this.name = "pagination";
    ??}
    ??
    ??if(this.parameter == null){
    ???this.parameter = "page";
    ??}
    ??
    ??pagination = (Pagination)pageContext.getRequest().getAttribute(name);
    ??
    ??if(pagination == null) {
    ???throw new NullPointerException(name + "在request中為空!");
    ??}
    ??
    ??try{
    ???JspWriter out = pageContext.getOut();

    ???String contextPath = encodeURL(this.path, this.parameter);
    ???if(this.formName != null && this.formName.length() > 0){
    ????if(pagination.isHasPreviousPage()){
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + "1\" onclick=\"paginationSubmit('1');return false;\" title=\"第一頁\">第一頁</a>");
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getPreviousPage() + "\" onclick=\"paginationSubmit('" + pagination.getPreviousPage() + "');return false;\" title=\"上一頁\">上一頁</a>");
    ????}else{
    ?????out.println("<span title=\"第一頁\">第一頁</span>");
    ?????out.println("<span title=\"上一頁\">上一頁</span>");
    ????}
    ????
    ????if(pagination.isHasNextPage()){
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getNextPage() + "\" onclick=\"paginationSubmit('" + pagination.getNextPage() + "');return false;\"? title=\"下一頁\">下一頁</a>");
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getTotalPage() + "\" onclick=\"paginationSubmit('" + pagination.getTotalPage() + "');return false;\" title=\"最后一頁\">最后一頁</a>");
    ????}else{
    ?????out.println("<span title=\"下一頁\">下一頁</span>");
    ?????out.println("<span title=\"最后一頁\">最后一頁</span>");
    ????}
    ???}else{
    ????if(pagination.isHasPreviousPage()){
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + "1\" title=\"第一頁\">第一頁</a>");
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getPreviousPage() + "\" title=\"上一頁\">上一頁</a>");
    ????}else{
    ?????out.println("<span title=\"第一頁\">第一頁</span>");
    ?????out.println("<span title=\"上一頁\">上一頁</span>");
    ????}
    ????
    ????if(pagination.isHasNextPage()){
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getNextPage() + "\" title=\"下一頁\">下一頁</a>");
    ?????out.println("<a class=\"pagination\" href=\"" + contextPath + pagination.getTotalPage() + "\" title=\"最后一頁\">最后一頁</a>");
    ????}else{
    ?????out.println("<span title=\"下一頁\">下一頁</span>");
    ?????out.println("<span title=\"最后一頁\">最后一頁</span>");
    ????}
    ???}
    ???
    ???out.println("&nbsp;");
    ???out.println("共有" + pagination.getTotalCount() + "條");
    ???out.print("&nbsp;");
    ???out.println("每頁" + pagination.getCount() + "條");
    ???out.print("&nbsp;");
    ???out.println("共" + pagination.getTotalPage() + "頁");
    ???out.print("&nbsp;");
    ???out.println("本頁是第" + pagination.getCurrPage() + "頁");
    ???out.println("&nbsp;");
    ???out.println("跳轉到第<input type=\"text\" id=\"" + this.parameter + "\" class=\"input1\" size=\"3\" maxlength=\"5\">頁");
    ???out.println("&nbsp;");
    ???out.println("<button onclick=\"paginationGoto();\" class=\"buttonbg\">跳轉</button>");
    ???out.println("<br />");
    ???/*創建CSS內容*/
    ???createCSS(out);
    ???if(this.formName != null && this.formName.length() > 0) {
    ????/*創建js內容*/
    ????createJS(out, contextPath, pagination.getTotalPage());
    ???}else{
    ????createNoFormJS(out, this.path, pagination.getTotalPage());
    ???}
    ???out.println();
    ??}catch(Exception e){
    ???throw new JspException(e);
    ??}
    ??
    ??return SKIP_BODY;
    ?}
    ?
    ?/* (non-Javadoc)
    ? * @see javax.servlet.jsp.tagext.TagSupport#doEndTag()
    ? */
    ?public int doEndTag() throws JspException {
    ??// TODO Auto-generated method stub
    ??return EVAL_PAGE;
    ?}
    ?
    ?/**
    ? * 改變URL使它能訪問到action或servlet中去
    ? * @param href 從頁面傳來的href
    ? * @param param
    ? * @param queryStr 查詢內容
    ? * @return
    ? * @author?
    ? */
    ?private final String encodeURL(String href, String param){
    ??StringBuffer buffer = new StringBuffer(100);
    ??
    ??HttpServletRequest request =
    ???(HttpServletRequest)this.pageContext.getRequest();
    ??buffer.append(request.getContextPath() + "/" + href);

    ??// 判斷是否已經帶有?號
    ??int question = href.indexOf("?");
    ??if(question > 0 ){
    ???buffer.append("&" + param + "=");
    ??}else{
    ???buffer.append("?" + param + "=");
    ??}
    ??
    ??return buffer.toString();
    ?}
    ?
    ?/**
    ? * 創建js內容如果提交form就用js提交
    ? * @param out
    ? * @param contextPath
    ? * @throws Exception
    ? * @author?
    ? */
    ?private final void createJS(JspWriter out, String contextPath, int totalPage) throws Exception {
    ??out.println("<script language=\"javascript\">");
    ??out.println("function paginationSubmit(pageNum_) { ");
    ??out.println("? document." + formName + ".action=\'" + contextPath + "\' + pageNum_ + \'\';");
    ??out.println("? document." + formName + ".submit();");
    ??out.println("}");
    ??/*跳轉內容*/
    ??HttpServletRequest request =
    ???(HttpServletRequest)this.pageContext.getRequest();
    ??String contPath = request.getContextPath() + "/" + this.path;
    ??out.println("function paginationGoto() { ");
    ??out.println("? if(!controlNotNull(document.all." + this.parameter + ", '跳轉頁面')) {");
    ??out.println("??? return;");
    ??out.println("? }");
    ??out.println("? ");
    ??out.println("? if(!controlIsInt(document.all." + this.parameter + ", '跳轉頁面')) {");
    ??out.println("??? return;");
    ??out.println("? }");
    ??out.println("? ");
    ??out.println("? pageNum_ = document.all." + this.parameter + ".value");
    ??out.println("? if(pageNum_ > 0 && pageNum_ <= " + totalPage + ") {");
    ??out.println("??? document." + formName + ".action=\'" + contPath + "&" + this.parameter + "=\' + pageNum_ + \'\';");
    ??out.println("??? document." + formName + ".submit();");
    ??out.println("? } else { ");
    ??out.println("??? alert(\"您輸入的頁數超出范圍\");");
    ??out.println("? }");
    ??out.println("}");
    ??out.println("</script>");
    ??out.println();
    ?}
    ?
    ?/**
    ? * 創建沒有form時的js
    ? * @param out
    ? * @param contextPath
    ? * @throws Exception
    ? * @author?
    ? */
    ?private final void createNoFormJS(JspWriter out, String href, int totalPage) throws Exception {
    ??HttpServletRequest request =
    ???(HttpServletRequest)this.pageContext.getRequest();
    ??String contPath = request.getContextPath() + "/" + href;

    ??out.println("<script language=\"javascript\">");
    ??out.println("function paginationGoto() { ");
    ??out.println("? if(!controlNotNull(document.all." + this.parameter + ", '跳轉頁面')) {");
    ??out.println("??? return;");
    ??out.println("? }");
    ??out.println("? ");
    ??out.println("? if(!controlIsInt(document.all." + this.parameter + ", '跳轉頁面')) {");
    ??out.println("??? return;");
    ??out.println("? }");
    ??out.println("? ");
    ??out.println("? pageNum_ = document.all." + this.parameter + ".value");
    ??out.println("? if(pageNum_ > 0 && pageNum_ <= " + totalPage + ") {");
    ??out.println("??? document.location.href=\'" + contPath + "&" + this.parameter + "=\' + pageNum_ + \'\';");
    ??out.println("? } else { ");
    ??out.println("??? alert(\"您輸入的頁數超出范圍\");");
    ??out.println("? }");
    ??out.println("}");
    ??out.println("</script>");
    ??out.println();
    ?}
    ?
    ?/**
    ? * 創建css內容
    ? * @param out
    ? * @throws Exception
    ? * @author?

    ? */
    ?private final void createCSS(JspWriter out)throws Exception {
    ??out.println("<style type=\"text/css\">");
    ??out.println("a.pagination:visited { text-decoration: underline; color: #808080; } ");//#CCCCFF #c0c0c0
    ??out.println("a.pagination:link { text-decoration: underline; color: blue; } ");
    ??out.println("a.pagination:hover { text-decoration: none; color: #009933; } ");
    ??out.println("a.pagination:active { text-decoration: none; color: orangered; } ");
    ??out.println("</style>");
    ?}
    }
    ========================================
    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    ?"<taglib>
    ??? <tlib-version>1.0</tlib-version>
    ?<jsp-version>1.2</jsp-version>
    ?<short-name>page</short-name>
    ?<description>
    ?@author
    ?pagination page 1-10
    ?</description>

    ?<tag>
    ??<name>pagination</name>
    ??<tag-class>com.scitel.gdnumcommon.ctag.PaginationTag</tag-class>
    ??<body-content>empty</body-content>

    ??<attribute>
    ???<name>path</name>
    ???<required>true</required>
    ???<rtexprvalue>true</rtexprvalue>
    ??</attribute>

    ??<attribute>
    ???<name>name</name>
    ???<required>false</required>
    ???<rtexprvalue>true</rtexprvalue>
    ??</attribute>

    ??<attribute>
    ???<name>parameter</name>
    ???<required>false</required>
    ???<rtexprvalue>true</rtexprvalue>
    ??</attribute>
    ??
    ??<attribute>
    ???<name>formName</name>
    ???<required>false</required>
    ???<rtexprvalue>true</rtexprvalue>
    ??</attribute>

    ?</tag>
    </taglib>
    =============================
    頁面使用代碼
    ??<Td align="right" colspan="10">
    ??<page:pagination path="wfProcAction.do?method=queryWorkFlow" name="pagination" parameter="page" formName="form1" />
    ??</Td>
    ===============================================
    Action 類中使用代碼
    ???? String page = request.getParameter("page");
    ???? Pagination pagination = new Pagination();
    ???? pagination.setTotalCount(didWf.size());
    ????
    ???????????????? if (page != null && page.length() > 0) {
    ????????? pagination.setPage(Integer.parseInt(page));
    ???? }else {
    ????????? pagination.setPage(1);
    ???? }
    ???????????????? int page_=pagination.getPage();
    ???????????????? int row_start=(page_*pagination.getCount())-pagination.getCount();
    ???????????????? int row_end=page_*pagination.getCount();
    ???????????????? if(row_end>didWf.size()) {
    ??????????????? ? row_end=didWf.size();
    ???????????????? }
    ???????????????? List datalist=didWf.subList(row_start,row_end);
    ???????????????? request.setAttribute("wkList",datalist);
    ????????????????
    ???????????????? request.setAttribute("pagination", pagination);
    ===============================


    評論:
    # re: 一個自定義分頁標簽 2007-06-10 19:58 | kbfox
    似乎不太完整啊  回復  更多評論
      
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 国内精品久久久久久久亚洲| 免费一级做a爰片性色毛片| 亚洲国产精品无码久久久蜜芽| 美女的胸又黄又www网站免费| 四色在线精品免费观看| 亚洲国产精品无码久久九九大片| 免费大片黄在线观看yw| 亚洲国产91在线| 成人a免费α片在线视频网站| 亚洲国产美女精品久久久| 国产在线观看免费不卡| 免费精品久久久久久中文字幕| 亚洲精品成人在线| 91在线视频免费观看| 97se亚洲综合在线| 114一级毛片免费| 亚洲1区2区3区精华液| 亚洲第一页日韩专区| 在线免费播放一级毛片| 亚洲精品第五页中文字幕| 无码人妻一区二区三区免费手机 | 1000部拍拍拍18勿入免费视频下载| 久久久亚洲精品国产| 在线永久免费的视频草莓| 亚洲午夜无码毛片av久久京东热| 一本久到久久亚洲综合| 两性色午夜视频免费网| 在线观看亚洲一区二区| 午夜高清免费在线观看| 久久久精品视频免费观看| 久久精品国产精品亚洲毛片| 午夜dj免费在线观看| 久久国产精品免费一区二区三区| 亚洲视频在线免费播放| 日本高清色本免费现在观看| 中文精品人人永久免费| 亚洲不卡影院午夜在线观看| 国产成人亚洲精品狼色在线| 91免费资源网站入口| 国产伦精品一区二区免费| 亚洲 欧洲 自拍 另类 校园|