读书人

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

发布时间: 2012-03-24 14:00:46 作者: rapoo

求助,关于自定义标签库的属性的问题~~~~~~~~~~
晕,排版有问题代码重发


下面是我写的实现分页自定义标签的部分代码。
我用的是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可以添加属性的

读书人网 >Java Web开发

热点推荐