求助,关于自定义标签库的属性的问题~~~~~~~~~~
晕,排版有问题代码重发
下面是我写的实现分页自定义标签的部分代码。
我用的是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可以添加属性的