`
zuzong
  • 浏览: 112400 次
  • 性别: 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  
呵呵,现在看看真是好笑,不过也真佩服自己,怎么写出来的,这么乱。。。哈哈哈,有空找找源文件发上来,哈哈

相关推荐

Global site tag (gtag.js) - Google Analytics