学习自定义标签时老出错

login.jsp代码:
<% @ page language="java" pageEncoding="GBK" %>

<% @ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<% @ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<% @ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<% @ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<% @ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<% @ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<% @ taglib uri="/WEB-INF/query.tld" prefix="query" %>
< html:html >
< head >
< html:base  />
< title > login.jsp </ title >
</ head >

< body >
 
< html:form  action ="/login.do" >
   
< query:queryTag  formName ="loginForm"  strSql ="from Customer"  resultList ="resultList" />
      
< table  border ="0" >
          
< logic:notEmpty  name ="loginForm"  property ="resultList" >
          
< logic:iterate  name ="loginForm"  property ="resultList"  id ="curobject"  indexId ="curindex" >
           
< tr >
              
< td >
    
< bean:write  name ="curobject"  property ="vipno"   />
              
</ td >
             
< td >
    
< bean:write  name ="curobject"  property ="vipName"   />
            
</ td >
        
</ tr >
      
</ logic:iterate >
    
</ logic:notEmpty >
   
</ table >
  
</ html:form >
 
</ body >
</ html:html >

 QueryTag.java代码:

 

package  com.ekowill.taglib;

import  java.lang.reflect.InvocationTargetException;
import  java.util.ArrayList;
import  java.util.List;

import  javax.servlet.jsp.JspException;
import  javax.servlet.jsp.JspTagException;
import  javax.servlet.jsp.tagext.TagSupport;

import  org.apache.commons.beanutils.PropertyUtils;
import  org.apache.log4j.Logger;
import  org.apache.struts.util.RequestUtils;
import  org.hibernate.Query;
import  org.hibernate.Session;

import  com.ekowill.HibernateSessionFactory;

public   class  QueryTag  extends  TagSupport  {

    
private static Logger logger;

    
/**
     * 
     
*/

    
private static final long serialVersionUID = 1L;

    
private String formName = "";

    
private String strSql = "";

    
private String resultList = "";

    
public QueryTag() {
        
super();
    }


    
public int doStartTag() throws JspException {
        logger.info(
"enter tag");
        
try {
            Object bean 
= RequestUtils.lookup(pageContext, formName, null);
            List resultsList 
= new ArrayList();

            
if (strSql != null && !strSql.trim().equals("")) {
                Session session 
= HibernateSessionFactory.currentSession();
                Query query 
= session.createQuery(strSql);
                resultsList 
= query.list();
                PropertyUtils.setProperty(bean, resultList, resultsList);
            }


        }
 catch (IllegalAccessException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
            
return TagSupport.EVAL_PAGE;
        }
 catch (InvocationTargetException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
            
return TagSupport.EVAL_PAGE;
        }
 catch (NoSuchMethodException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
            
return TagSupport.EVAL_PAGE;
        }

        
return SKIP_BODY;
    }


    
public String getFormName() {
        
return formName;
    }


    
public void setFormName(String formName) {
        
this.formName = formName;
    }


    
public String getResultList() {
        
return resultList;
    }


    
public void setResultList(String resultList) {
        
this.resultList = resultList;
    }


    
public String getStrSql() {
        
return strSql;
    }


    
public void setStrSql(String strSql) {
        
this.strSql = strSql;
    }


}

query.tld

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd" >
< taglib >
    
< tlibversion > 1.0 </ tlibversion >
    
< jspversion > 1.1 </ jspversion >
    
< shortname > query </ shortname >

    
< tag >
        
< name > queryTag </ name >
        
< tagclass > com.ekowill.taglib.QueryTag </ tagclass >
        
< bodycontent > empty </ bodycontent >
        
<!-- 属性sql和fieldname -->
        
< attribute >
            
< name > formName </ name >
            
< required > true </ required >
            
< rtexprvalue > true </ rtexprvalue >
        
</ attribute >
        
< attribute >
            
< name > strSql </ name >
            
< required > true </ required >
            
< rtexprvalue > true </ rtexprvalue >
        
</ attribute >
        
< attribute >
            
< name > resultList </ name >
            
< required > true </ required >
            
< rtexprvalue > true </ rtexprvalue >
        
</ attribute >
    
</ tag >

</ taglib >

报错:

 

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: org/apache/log4j/Logger
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.WEB_002dINF.jsp.login_jsp._jspService(login_jsp.java:222)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    com.ekowill.taglib.QueryTag.doStartTag(QueryTag.java:39)
    org.apache.jsp.WEB_002dINF.jsp.login_jsp._jspx_meth_query_queryTag_0(login_jsp.java:255)
    org.apache.jsp.WEB_002dINF.jsp.login_jsp._jspService(login_jsp.java:120)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.28

 

在java文件中没报错,在这报这错,真是不知怎么回事.高手指点一下就好了.搞好几个晚上了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值