首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

,关于自定义标签库的属性的有关问题~

2012-03-24 
求助,关于自定义标签库的属性的问题~~~~~~~~~~晕,排版有问题代码重发下面是我写的实现分页自定义标签的部

求助,关于自定义标签库的属性的问题~~~~~~~~~~
  晕,排版有问题代码重发    
 
 
下面是我写的实现分页自定义标签的部分代码。    
我用的是NETBEANS工具。    
当我在JSP页面中加入     <%@     taglib     uri=     "/WEB-INF/tlds/fenye.tld     "prefix=     "page     "%     >    
再在后加入     <page:towTag     maxRows=“7”         >         </page:towTag     >    
NETBEANS报错“Attribute     maxRows     invalid     for     tag     towTag”,我在类中写了    
setMaxRows(int     maxRows),为什么在标签中用maxRows属性会错啊?    
package     tag;    
 
import     java.io.IOException;    
import     java.sql.*;    
import     javax.servlet.ServletRequest;    
import     javax.servlet.jsp.JspContext;    
import     javax.servlet.jsp.PageContext;    
import     javax.servlet.jsp.tagext.*;    
import     javax.servlet.jsp.JspWriter;    
import     javax.servlet.jsp.JspException;    
import     sql.SQL;    
 
 
public     class     towTag     extends     SimpleTagSupport     {    
 
 
private     String     sql;    
private     int     rows;    
private     int     maxRows;    
private     int     countsRows;    
private     int     page;    
int     countsPage;    
private     String     url;    
 
SQL     sql2000;     //SQL     是我自己以前写的一个连接数据库的类;    
ResultSet     rs;    
 
public     towTag(){    
super();    
sql2000=new     SQL();    
}    
 
public     void     doTag()     throws     JspException,     IOException{    
 
JspWriter     out=getJspContext().getOut();    
rs=sql2000.chaXun(sql);     //“sql”     为要查询的目标的条件语句;    
 
try     {                                                                                                                                             //获取查询出的结果一个有多少行。    
rs.last();                                                                                                                         //         如果查询出的饿行数小于1,则结束标签并在    


countsRows     =rs.getRow();                                                                 //     JSP页面中输出     "没有需要的结果!     "。    
if(countsRows     <1){    
out.print(     "没有需要的结果!     ");    
return;    
}    
}     catch     (SQLException     ex)     {    
ex.printStackTrace();    
}        
 
if(getMaxRows()     <1);                                                 //     设置每一页能输出的查询结果的最大行数,当输入的    
setMaxRows(1);                                                                     //         值小于1时,则设置每一页能输出的查询结果的最大行    
                                                                                                                          //             数为一    
if(getRows()     <1)    
setRows(1);    
 
countsPage=(countsRows%maxRows==0)?(countsRows/maxRows):(countsRows/maxRows+1);    
//countsPage为一共分了多少页;    
 
JspContext     jsp=     this.getJspContext();    
ServletRequest     request=((PageContext)jsp).getRequest();    
try     {    
page=((Integer)request.getAttribute(     "page     ")).intValue();    
}     catch(Exception     e)     {    
page=1;    
}    
 
 
if(getPage()     <1){    
page=1;    
}    
try     {    
setRows((page-1)*maxRows+1);    
rows=this.getRows();    
if(rows     <1)    
rows=1;    
if(rows     > maxRows)    
rows=maxRows;    
rs.relative(rows);    
}     catch     (SQLException     ex)     {    
ex.printStackTrace();    
}    
 
out.print(     "     <form     action=     "+url+     ",method=post     >     ");    
 
try     {    
 
JspFragment     f=getJspBody();    
if     (f     !=     null)     f.invoke(out);    
 
 
}     catch     (java.io.IOException     ex)     {    


throw     new     JspException(ex.getMessage());    
}    
out.print(     "     <input     type=text     name=page/     >     ");    
out.print(     "     <input     type=submit     value=ok/     >     ");    
out.print(     "     </form     >     ");    
}    
 
public     void     setSql(String     sql)     {    
this.sql     =     sql;    
}    
 
public     void     setRows(int     rows)     {    
this.rows     =     rows;    
}    
 
public     void     setMaxRows(int     maxRows)     {    
this.maxRows     =     maxRows;    
}    
 
 
 
public     String     getSql()     {    
return     sql;    
}    
 
public     int     getRows()     {    
return     rows;    
}    
 
public     int     getMaxRows()     {    
return     maxRows;    
}    
 
 
public     ResultSet     getResultSet(){    
return     rs;    
}    
 
public     int     getPage()     {    
return     page;    
}    
 
public     void     setUrl(String     url)     {    
this.url     =     url;    
}    
}

[解决办法]
需要定义taglib的配置阿,就是一个xml。
用netbeans可以添加属性的

热点排行