晕,排版有问题代码重发
下面是我写的实现分页自定义标签的部分代码。
我用的是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;
}
}
下面是我写的实现分页自定义标签的部分代码。
我用的是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;
}
}
解决方案 »
- who can give a hand?
- jquery 及ajax 验证都通过了 ,最后 这个方法的返回值确实false
- struts2 jquery json
- 在EXT中如果获取iframe对象并且获的iframe对象中的form标签并提交。
- 如何统计用户下载成功率
- 求助!在JAVA里实现序列化除了用Serializable接口实现外,还有什么方法可以实现吗?急呀!!!
- 我做了个HelloTomcat.java的sevlet web.xml也放在WEB-INF下面了但服务器启动后仍就看不到HelloTomcat
- csdn用户自动登录
- Spring中的applicationContext.xml与SpringMVC的xxx-servlet.xml的区别
- gethibernateTemplate.update时控制台输出更新语句但是数据库无反应
- 超级菜鸟问题,新手求助ToT
- 多个文件上传问题
用netbeans可以添加属性的
下面是我的标签库文件~~~~~~~~应该没错吧!
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>fenye</short-name>
<uri>/WEB-INF/tlds/fenye</uri>
<!-- A validator verifies that the tags are used correctly at JSP
translation time. Validator entries look like this:
<validator>
<validator-class>com.mycompany.TagLibValidator</validator-class>
<init-param>
<param-name>parameter</param-name>
<param-value>value</param-value>
</init-param>
</validator>
-->
<!-- A tag library can register Servlet Context event listeners in
case it needs to react to such events. Listener entries look
like this:
<listener>
<listener-class>com.mycompany.TagLibListener</listener-class>
</listener>
-->
<tag>
<name>OneTag</name>
<tag-class>tag.OneTag</tag-class>
<body-content>JSP</body-content>
</tag>
<tag>
<name>towTag</name>
<tag-class>tag.towTag</tag-class>
<body-content>scriptless</body-content>
</tag>
<tag>
<name>threeTag</name>
<tag-class>tag.threeTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>