首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于JSP自定义标签的有关问题

2012-03-19 
关于JSP自定义标签的问题 运行该程序回出现错误请高手指教---标签类packagecom.item.tagimportjava.sql.C

关于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;}方法试试看

热点排行