这是我的代码:PaginationTag.java
package com.xncf.taglib;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.xncf.dao.ArchiveDao;
import com.xncf.model.Archive;
public class PaginationTag extends TagSupport {
private int categoryId;
private int pages;
private static Log log = LogFactory.getLog(ArchiveDao.class);
private ArchiveDao archiveDao;
private static final long serialVersionUID = 1L;
public int doStartTag()throws JspException{
return EVAL_BODY_INCLUDE;
}

public int doEndTag()throws JspException{
BeanFactory factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
ArchiveDao archiveDao =(ArchiveDao)factory.getBean("archiveDao");
List<Archive> archives=(List<Archive>) archiveDao.show(categoryId);
pageContext.setAttribute("archives", archives);
return EVAL_PAGE;
}
public ArchiveDao getArchiveDao() {
return archiveDao;
}
public void setArchiveDao(ArchiveDao archiveDao) {
this.archiveDao = archiveDao;
}
public int getCategoryId() {
return categoryId;
}
public void setCategoryId(int categoryId) {
this.categoryId = categoryId;
} public int getPage() {
return pages;
} public void setPage(int pages) {
this.pages = pages;
}
}
这是dao文件名为:ArchiveDao.java
package com.xncf.dao;import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;
import java.util.Properties;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.core.JdbcTemplate;import com.xncf.model.Archive;
import com.xncf.model.Category;
import com.xncf.utils.MyUtils;
import com.xncf.utils.Sys;
public class ArchiveDao implements DAO {
private static Log log = LogFactory.getLog(ArchiveDao.class);
Properties properties = null;
private JdbcTemplate jdbcTemplate;
public List<?> pagination(int categoryId,long totals) {
try{
properties=Sys.loadPropertiesResource(PROPERTIES_RESOURCE);
}catch(IOException ioe){
log.error(ioe.toString());
}
String sql="SELECT * FROM ( SELECT TOP 25 * FROM (SELECT TOP " +totals+
" * FROM Archive where category_Id="+categoryId+" order by Release_Date desc) t1) t2 Order by Archive_Id DESC";;
List<Archive> list=null;
if(categoryId==0){//如果值为0则显示全部数据
sql="select * from Archive inner join Category on Archive.Category_Id=Category.Category_Id order by Release_Date DESC";
list=jdbcTemplate.query(sql,new ArchiveMapper());
}else{
list=jdbcTemplate.query(sql,new ArchiveMapper());
}
System.out.println(sql+"分页时的SQL");
return list;
}
}application.xml的配置
  <bean id="paginationTag" class="com.xncf.taglib.PaginationTag">
      <property name="archiveDao"> <ref local="archiveDao"/> </property>
  </bean>archive.tld
<?xml version="1.0" encoding="utf-8"?>
<taglib>
  <tlib-version>1.2</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>Show</short-name>
  <description>
     showArchive
  </description>
  <tag>
  <name>showArchive</name>
  <tag-class>com.xncf.taglib.PaginationTag</tag-class>
  <body-content>empty</body-content>
      <attribute>
        <name>categoryId</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
        <name>page</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>
  </tag>
</taglib>
以下是提示的错误:
Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /pagination.jsp(29,4) Unable to load tag handler class "com.xncf.taglib.PaginationTage" for tag "pagination:archive"
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1242)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.xncf.filter.Character.doFilter(Character.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    org.apache.jasper.JasperException: /pagination.jsp(29,4) Unable to load tag handler class "com.xncf.taglib.PaginationTage" for tag "pagination:archive" 异常:org.apache.jasper.JasperException 
    发生位置:/pagination.jsp 29行. 
    原因:不能加载标签“pagination:archive”的处理类“com.xncf.taglib.PaginationTage” 具体没看出来...没有你这么用过...可以说详细点吗?
    混个眼熟.