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 >
<% ... @ 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;
}
}
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 >
<! 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
--------------------------------------------------------------------------------
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文件中没报错,在这报这错,真是不知怎么回事.高手指点一下就好了.搞好几个晚上了.