`
zuzong
  • 浏览: 115252 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

分~页~,自动生成表格

    博客分类:
  • java
阅读更多
这是07年11月发在csdn blog里的,隔得时间太长,都记不清是怎么回事了,那时什么也不懂,所以写的很垃圾。。。

分页控制器(可能是这个名字),是仿主流论坛的分页做的,JS输入页码,半年前做着玩的的,有些东西记不太清了,反正里面好东西不少,难度适中,嘿嘿。。。

分页类:
import java.util.List;

public class PaginationMethod ...{

    private int totalpage;
    private int back;
    private int next;
    private boolean backbool;
    private boolean nextbool;
    private int thispage;
    private int scrollrow;
    public static List list;
    private boolean error;
    private int startpage;
    private int endpage;
    private int inputpage;

    public PaginationMethod(int thispage,int scrollrow,List list) ...{
        // TODO Auto-generated constructor stub
        
        if(thispage<1)
            this.thispage = 1;
        else 
            this.thispage = thispage;
        
        if(scrollrow<1)
            this.scrollrow = 5;
        else 
            this.scrollrow = scrollrow;
        
        this.list = list;
    }
    
    //得到总页数
    public int getTotalpage()...{
        this.totalpage = this.getListsize()/this.scrollrow;

        if(getListsize() % scrollrow !=0)
            totalpage++;

        return totalpage;
    }

    
    public int getThispage() ...{
        return thispage;
    }

    public void setThispage(int thispage) ...{
        this.thispage = thispage;
    }
    
    //得到总行数
    public int getListsize() ...{
//        if(this.list.size()<1 || this.list==null)
//            this.error = false;
        return PaginationMethod.list.size();
    }
    
//    public void setListsize(int listsize) {
//    this.listsize = listsize;
//}

    //判断上一页动作是否会造成越界
    public boolean isBackbool() ...{
        if(this.thispage==1)backbool = false;
        else backbool = true;
        return backbool;
    }

//    public void setUppagebool(boolean uppagebool) {
//        this.uppagebool = uppagebool;
//    }

    //判断下一页动作是否会造成越界
    public boolean isNextbool() ...{
        if(this.thispage==this.getTotalpage())nextbool = false;
        else nextbool = true;
        return nextbool;
    }
    
//    public void setDownpagebool(boolean downpagebool) {
//    this.downpagebool = downpagebool;
//}

    //执行下一页动作
    public int getBack() ...{
        if(this.isBackbool())
            this.back = this.getThispage()-1;
        else back = this.getThispage();
        return back;
    }

//    public void setBack(int back) {
//        this.back = back;
//    }

    //执行上一页动作
    public int getNext() ...{
        if(this.isNextbool())
            this.next = this.getThispage()+1;
        else next = this.getThispage();
        return next;
    }

//    public void setNext(int next) {
//        this.next = next;
//    }

//起始页
    public int getStartpage() ...{
        if(this.thispage<0)thispage=1;
        startpage = (thispage-1) * this.scrollrow;
        return startpage;
    }

    public void setStartpage(int startpage) ...{
        this.startpage = startpage;
    }

//结束页
    public int getEndpage() ...{
        endpage = this.getStartpage() + this.scrollrow;
        if(endpage>this.getListsize())
            endpage = this.getListsize();
            
        return endpage;
    }

    public void setEndpage(int endpage) ...{
        this.endpage = endpage;
    }

//JS输入的页码
    public int getInputpage() ...{
        if(inputpage>this.getListsize())
        ...{inputpage = getListsize();}
        else if(inputpage<1)
        ...{inputpage = 1;}
        else ...{inputpage = thispage;}
        
        return inputpage;
    }

    public void setInputpage(int inputpage) ...{
        this.inputpage = inputpage;
    }

    public int getScrollrow() ...{
        return scrollrow;
    }

    public void setScrollrow(int scrollrow) ...{
        this.scrollrow = scrollrow;
    }

}



表格自动生成标签:
(时间真的好奇怪,他能治疗心的伤痛,也能带来迷茫的头痛。。。我这是自找的。。。)
import java.awt.Color;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import com.***.TableTagResult;//JDBC的结果集,返回List

public class TableTag extends SimpleTagSupport ...{

    private String order;

    private String update;

    private String delete;

    private String[] sqlparams;
    private String[] css;
    private String[] javascript;
    private String style;
    private String[] title;
    private String classhtm;  
    
    private StringBuffer strbuf;

    private List listrow;
    private List listcol;

//    private boolean title = false;

    private boolean edit = false;

    private PaginationMethod pm;

    public TableTag() ...{
        // TODO Auto-generated constructor stub

    }

    public void doTag() ...{

        PageContext pc = (PageContext) this.getJspContext();
        TableTagResult ttr = new TableTagResult("select * from roysched");
        this.listrow = ttr.getTableResultRow();
        this.listcol = ttr.getTableResultCol();
        pm = new PaginationMethod(1, 5, listrow);
        
        ServletRequest request = pc.getRequest();
        String page = request.getParameter("pageID");
        if (page == null || page == "" || page.length()<1)
            page = "1";
        char[] ch = page.toCharArray();
        for(char n:ch)...{
            if(Character.getNumericValue(n)>9 || Character.getNumericValue(n)<1)...{
                page = String.valueOf(pm.getThispage());
            }
        }
        if(Integer.parseInt(page) > pm.getTotalpage())
                page = String.valueOf(pm.getTotalpage());
            else if(Integer.parseInt(page) < 1)
                page = "1";

        pm.setThispage(Integer.parseInt(page));
        System.out.println("pm.getThispage()====" + pm.getThispage());
        pm.list = this.listrow;

        this.update = "修改";
        this.delete = "删除";
        try ...{
            JspWriter out = getJspContext().getOut();
            
//            if(this.getJavascript() != null){
//            for(String n:this.getJavascript())
//                out.print("<script type="text/javascript" src=""+n+""></script>");
//            }
            out.print(this.getClasshtm());
            
            if(this.getCss() != null)...{
            for(String n:this.getCss())
                out.print("<link rel="stylesheet" type="text/css" href=""+n+"">");
            }
            
            out.print("<div>");
            out
                    .print("<table border="1" align="center" cellspacing="1" cellpadding="1" style=""+this.style+"" width="80%">");
            out.print("标签生成的表格");
            
            if (this.getTitle() == null || getTitle().length<0)...{
                for(int i=0;i<this.listcol.size();i++)...{
//                    out.print("<th align="center" valign="middle">"
//                            + listcol.get(i));
//                    out.print("</th>");
                    out.print("<th>");
                    out.print("<input type="button" name="title" value=""+listcol.get(i)+"" />");
                    out.print("</th>");
                }
                    
                }else ...{
                    for (String n:getTitle()) ...{
//                        out.print("<th align="center" valign="middle">"
//                                + n);
//                        out.print("</th>");
                        out.print("<th>");
                        out.print("<input type="button" name="title" value=""+n+"" class="but"/>");
                        out.print("</th>");
                    }
                }
            if (this.isEdit())...{
                    out
                    .print("<th colspan="2" align="center" valign="bottom">"
                            + "编辑");
                    out.print("</th>");
                    }
                
            
            for (int i = pm.getStartpage(); i < pm.getEndpage()-1; i++) ...{
                out.print("<tr>");
                List list1 = (List) pm.list.get(i);
                for(int j=0;j<list1.size();j++)...{

                    out
                            .print("<td align="center">"
                                    + list1.get(j).toString());
                    out.print("</td>");
                }
                if (this.isEdit()) ...{
                    out.print("<td align="center">");
                    out.print("<a href="#?updateID=" + i + "">" + update
                            + "</a>");
                    out.print("</td>");
                    out.print("<td align="center">");
                    out.print("<a href="#?deleteID=" + i + "">" + delete
                            + "</a>");
                    out.print("</td>");
//                    out.print("</tr>");
                }
            
        }
//            if (this.getTitlebool()){
//                out.print("<td colspan="" + this.colparams.length + 1
//                        + "" align="right">");
//            out.print("</td>");
//            }
            if (pm.getTotalpage() < 2) ...{
                out.print("<tr>");
                out.print("<b>共1页</b>");
                out.print("</tr>");
            } else ...{
                out.print("<tr>");
                out.print("<td colspan=""+(this.listcol.size()+2)+"" align="right">");
                if(pm.getThispage()>1)
                out.print("<a href="temp.jsp?pageID=1" style="font-weight:bold">&laquo;</a>&nbsp;");
                if(pm.getThispage()>1)...{
                    for(int i=pm.getThispage()-2;i<pm.getThispage();i++)...{
                        if(i>=1)
                        out.print("&nbsp;<a href="temp.jsp?pageID="+i+"">"+i+"</a>&nbsp;");
                    }
                }
                out.print(pm.getThispage());
                if(pm.getThispage()<pm.getTotalpage())
                for(int i=pm.getThispage()+1;i<pm.getThispage()+3;i++)...{
                    if(pm.getThispage()==pm.getTotalpage()-1)
                        break;
                    out.print("&nbsp;<a href="temp.jsp?pageID="+i+"">"+i+"</a>");
                }
                out.print("&nbsp;…");

                out.print("&nbsp;<input type="text" name="inputpage" size="1" onkeydown="javascript: if(event.keyCode==13){location='temp.jsp?pageID='+this.value;return false;}"&nbsp;>");
                if(pm.getThispage()<pm.getTotalpage())...{
                out.print("&nbsp;<a href="temp.jsp?pageID=" + pm.getTotalpage()+ "" style="font-weight:bold">&raquo;</a>");
                out.print("&nbsp;Pages:&nbsp;("+pm.getThispage()+"/"+pm.getTotalpage()+")");
                
                }
                
                out.print("</td>");
            }

            
            out.print("</tr>");
            out.print("</table>");
            out.print("</div>");

        } catch (IOException e) ...{
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public String[] getSqlparams() ...{
        return sqlparams;
    }

    public void setSqlparams(String sqlparams[]) ...{
        this.sqlparams = sqlparams;
    }

    private String[] getTitle() ...{
        
        return title;
    }

    //
    private String createSql(String sqlparams[]) ...{
        this.strbuf = new StringBuffer("select ");
        for (int i = 0; i < sqlparams.length - 1; i++) ...{
            strbuf.append(sqlparams[i]);
            for (int j = i; j < i + 1; j++) ...{
                if (j == sqlparams.length - 2)
                    break;
                strbuf.append(",");
            }
        }
        strbuf.append(" from ");
        strbuf.append(sqlparams[sqlparams.length - 1]);
        String sql = this.strbuf.toString();

        return sql;
    }

    private String getSQL() ...{
        String sql = null;
        
            sql = this.createSql(this.getSqlparams());
        System.out.println("getSQL()====" + sql);
        return sql;
    }

//     public static void main(String[] args) {
//     
////     String str = new TableTag();
//         String str;
//         int in;
//        char ch;
//        
//         str = "1234567890";
////         in =  Character.digit('g', 1);
////         in = Integer.parseInt(str,10);
//         in = Character.getNumericValue('c');
//         char[] cha = str.toCharArray();
//         for(int i=0;i<cha.length;i++)
//         System.out.println(Character.getNumericValue(cha[i]));
//         }
    public boolean isEdit() ...{
        return edit;
    }

    public void setEdit(boolean edit) ...{
        this.edit = edit;
    }

    public String[] getCss() ...{
        return css;
    }

    public void setCss(String[] css) ...{
        this.css = css;
    }

    public String[] getJavascript() ...{
        return javascript;
    }

    public void setJavascript(String[] javascript) ...{
        this.javascript = javascript;
    }

    public void setTitle(String[] title) ...{
        this.title = title;
    }

    public String getClasshtm() ...{
        return classhtm;
    }

    public void setClasshtm(String classhtm) ...{
        this.classhtm = classhtm;
    }
}



自定义标签的配置文件.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    
    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>2.0</jsp-version>
    <short-name>tabletag</short-name>
    <uri>/tabletag</uri>
    
    <tag>
    <name>tablebasic</name>
    <tag-class>com.****.TableTag</tag-class>
    <body-content>empty</body-content>
    
    <attribute>
    <name>sqlparams</name><!--这是个数组,放入数据库表的字段名和表名,没处理where,就为了意思意思-->
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
        <attribute>
    <name>title</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
        <attribute>
    <name>edit</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
        
        <attribute>
    <name>javascript</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
        
        <attribute>
    <name>css</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
        
        <attribute>
    <name>style</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
            <attribute>
    <name>classhtm</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
        
        </tag>
    </taglib>
分享到:
评论
2 楼 helloworld365 2008-12-22  
面包
1 楼 zuzong 2008-12-21  
呵呵,现在看看真是好笑,不过也真佩服自己,怎么写出来的,这么乱。。。哈哈哈,有空找找源文件发上来,哈哈

相关推荐

    自动生成表格的JS插件

    在IT行业中,尤其是在Web开发领域,自动生成表格的JavaScript插件是提高开发效率和用户体验的重要工具。本篇文章将深入探讨“自动生成表格的JS插件”这一主题,重点关注其超轻量级特性、如何根据JSON数据生成表格、...

    自动出题 自动生成EXCEL表格

    //创建工作页sheet单页 ws = wb.Worksheets[1] as Worksheet; //第一个sheet页 ws.Name = "ck"; //这里修改sheet名称 } public void Open(string fileName) { appExcel = new Excel.Application(); ...

    WORD试验报告的自动生成

    - **多表格处理**:针对报告中可能包含多个表格的情况,可以利用VBA编写函数来动态生成表格,并填充相应数据。这样不仅可以提高效率,还能确保数据的一致性和准确性。 - **多图形处理**:对于报告中的图表,同样可以...

    动态生成表格(ASP)

    `GridView`可以自动根据数据源生成表格结构,并提供排序、分页和编辑功能。要动态生成表格,只需设置数据源(如DataTable或List对象)并调用`GridView.DataBind()`方法: ```csharp GridView1.DataSource = Get...

    通过拖拽的方法自动生成html

    在IT行业中,自动生成HTML是一种高效的工作方式,尤其对于网页设计和开发人员而言。"通过拖拽的方法自动生成html"是一种交互式设计工具的特性,它允许用户通过直观的拖放操作来创建网页布局,而无需手动编写HTML代码...

    最简单的动态生成表格并实现不同框架打印

    在IT领域,动态生成表格和跨框架交互是网页开发中的常见需求。动态表格允许开发者根据用户操作或服务器数据实时更新页面内容,而框架结构则能帮助组织和管理复杂的页面布局。下面将详细解释这两个概念以及如何实现...

    dwr 自动完成生成表格的例子

    "DWR 自动完成生成表格的例子" 指的是使用 Direct Web Remoting (DWR) 技术来实现一个具有自动完成功能的表格。DWR 是一种允许 JavaScript 与服务器端 Java 代码进行交互的开源库,特别适用于创建动态、交互性强的...

    后台动态生成七彩表格,支持导出excel和生成静态页

    后端则负责处理数据,生成表格结构,并将其发送到前端展示。对于“七彩”效果,可以利用CSS3的fill、stroke属性或者JavaScript库的颜色处理功能,为表格的单元格赋予不同的颜色,以实现视觉上的丰富多样性。 其次,...

    asp.net自动生成HTML

    例如,GridView或ListView控件可以自动生成表格或其他布局,显示数据集中的每一行数据。 4. **模板和布局**: Razor视图引擎中的`@section`和`@layout`允许开发者定义页面布局和区域,实现内容的复用和组织。这...

    一键自动生成MVC.rar

    "一键自动生成MVC"的功能则是为了简化这个过程,通过自动化工具帮助开发者快速生成MVC结构的代码,提高开发效率。 **1. MVC模式详解** - **模型(Model)**:负责处理业务逻辑和数据操作。它与数据库交互,获取和...

    mcgs批量自动生成IO监视表.zip,能够自动生成IO监视界面,此代码仅供学习参考

    这个“mcgs批量自动生成IO监视表.zip”压缩包提供了一种高效的方法来创建IO监视界面,特别适用于西门子PLC系统的应用。该工具能够显著减少程序员的工作量,通过自动化处理来提高开发效率。 首先,我们要理解IO表...

    pdf生成器,表格

    生成表格的具体操作如下: 1. 创建表格:根据需要的列数初始化`PdfPTable`对象。 ```csharp PdfPTable table = new PdfPTable(columns); ``` 2. 设置表格属性:可以设置边框、宽度、对齐方式等。 ```csharp ...

    自动生成 能够自动生成 对表操作的jsp 页面

    【标题】:自动生成能对表操作的JSP页面 【描述】:在Web开发中,JSP(JavaServer Pages)是一种动态网页技术,用于创建交互式的用户界面。本话题聚焦于如何通过自动化方式生成针对数据库表的增删改查(CRUD)操作...

    Table自动生成列

    在ASP.NET开发中,"Table自动生成列"是一种常见的需求,尤其在处理动态数据或大量数据展示时。这个概念涉及到创建动态HTML表格,通常通过编程方式而非静态HTML来完成,以便于根据后端数据源自动调整列的数量和内容。...

    js简单实现自动生成表格功能示例

    在JavaScript编程中,自动生成表格是一项常见的任务,特别是在动态网页应用中。本示例通过JavaScript实现了根据给定数据自动生成HTML表格的功能,涉及到的核心知识点包括数组遍历、DOM操作以及事件处理。 首先,...

    itextpdf 导出pdf 表格 自动分页中文 目录

    iTextPDF提供了一个方便的机制来创建自动生成的目录,基于文档中的标题级别。开发者可以通过设置标题样式并调用特定方法来生成目录结构。 5. **使用示例**: 使用iTextPDF生成带表格和目录的中文PDF文档,通常会涉及...

    如何使用word 自动生成目录

    在Microsoft Word中,自动生成目录是一项非常实用的功能,它能够帮助用户快速地组织和导航长文档,例如报告、论文或手册。通过利用内置的样式和大纲级别,Word能够自动识别并构建一个清晰、有序的目录结构。以下是...

    在WPS中如何自动生成目录及相关细节设置

    对于跨越多页的表格,可能需要插入“连续分节符”,并同样处理页眉链接。 通过以上步骤,你可以高效地在WPS中自动生成和管理论文的目录,即使论文内容发生变化,也能轻松地更新目录,保持与正文的一致性。这种自动...

    jquery打印HTML表格自动分页

    "jquery打印HTML表格自动分页"这个主题是关于如何利用jQuery来实现在用户打印HTML表格时自动进行分页的功能,这样可以确保长表格在打印时不被裁剪,而是以多页的形式呈现。 首先,要实现这一功能,我们需要理解HTML...

    九九乘法表自动生成示例源码

    标题中的“九九乘法表自动生成示例源码”是指使用编程语言实现的一个程序,该程序能够自动化地创建出我们熟悉的九九乘法表。九九乘法表是数学教育的基础,它包含了1到9的所有整数的乘积,通常以对称表格的形式展示。...

Global site tag (gtag.js) - Google Analytics