关于JSP自定义标签的问题
运行该程序回出现错误 请高手指教
---标签类
package com.item.tag;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTag;
import javax.servlet.jsp.tagext.Tag;
import com.item.bean.ConnectionDatabase;
public class HandleTestPage implements BodyTag
{
private BodyContent body;
private PageContext page;
private String userid;
public void setBookid(String userid)
{
this.userid = userid;
}
public void get()
{
// List data = null;
Connection con = null;
JspWriter out = page.getOut();
try
{
con = ConnectionDatabase.conn();
Statement st = con.createStatement();
String sql = "select * from [firstItem].[dbo].[userManager] where user_id = " + userid;
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
out.print( " <input type = 'text ' name = 'userid ' > ");
out.print( " <table border=2> <tr> ");
for (int i = 1; i < cols + 1; i++)
{
out.print( " <th> " + rsmd.getColumnName(i) + " </th> ");
}
out.print( " </tr> ");
while (rs.next())
{
out.print( " <tr> ");
for (int i = 1; i < cols + 1; i++)
{
out.print( " <td> " + rs.getString(i) + " </td> ");
}
out.print( " </tr> ");
}
out.print( " </table> ");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if (con != null)
{
con.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
// return data;
}
public int doStartTag() throws JspException
{
// TODO Auto-generated method stub
if(userid != null)
get();
return this.SKIP_BODY;
}
public int doEndTag() throws JspException
{
return this.EVAL_PAGE;
}
public Tag getParent()
{
return null;
}
public void release()
{
}
public void setPageContext(PageContext arg0)
{
this.page = arg0;
}
public void setBodyContent(BodyContent arg0)
{
this.body = arg0;
}
public void setParent(Tag arg0)
{
}
public void doInitBody() throws JspException
{
}
public int doAfterBody() throws JspException
{
return 0;
}
}
----------------JSP
<%@ page language= "java " import= "java.util.* " pageEncoding= "gb2312 "%>
<%@ taglib uri= "www.kengni.com " prefix= "p " %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ ":// "+request.getServerName()+ ": "+request.getServerPort()+path+ "/ ";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html>
<head>
<base href= " <%=basePath%> ">
<title> My JSP 'HandlePage.jsp ' starting page </title>
<meta http-equiv= "pragma " content= "no-cache ">
<meta http-equiv= "cache-control " content= "no-cache ">
<meta http-equiv= "expires " content= "0 ">
<meta http-equiv= "keywords " content= "keyword1,keyword2,keyword3 ">
<meta http-equiv= "description " content= "This is my page ">
<!--
<link rel= "stylesheet " type= "text/css " href= "styles.css ">
-->
</head>
<body>
<form name = "from2 " action = "# " >
<p:page userid= " <%=request.getParameter( "userid ") %> "> </p:page>
</form>
</body>
</html>
----------------------配置文件
<?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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
<tlib-version> 1.1 </tlib-version>
<short-name> NMTOKEN </short-name>
<uri> www.kengni.com </uri>
<tag>
<name> page </name>
<tag-class> com.item.tag.HandleTestPage </tag-class>
<body-content> JSP </body-content>
<attribute>
<name> userid </name>
<required> true </required>
<rtexprvalue> true </rtexprvalue>
</attribute>
</tag>
</taglib>
500 错误:org.apache.jasper.JasperException: /HandlePage.jsp(29,3) Unable to find setter method for attribute: userid
[解决办法]
HandleTestPage加一个setUserid(String str){userid=str;}方法试试看