У меня проблема с тегом Jsp Custom. Мой класс TagHandler PrintSqlTable определил, что имя поля данных или содержимое тега TLD являются такими же, как объявление. Но Complier показывает исключение: не удается найти метод установки для атрибута 'table' обработчика тега
Класс обработчика тегов:
public class PrintSqlTable extends TagSupport {
private String id;
private String table;
private Connection dbConnection;
/**Set the id value
* @param id*/
public void setId(String id) {
this.id = id;
}
/**Set the table name
* @param table*/
public void SetTable(String table) {
this.table = table;
}
@Override
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
/**Establish the Database Connection*/
try {
dbConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jmysql",
"root", "root!@#$Mysql2016");
PreparedStatement pst = dbConnection.prepareStatement(
"SELECT *FROM " + table + " WHERE id = ?");
pst.setInt(1, Integer.parseInt(id));
ResultSet rs = pst.executeQuery();
if (rs != null) {
ResultSetMetaData rsmd = rs.getMetaData();
/**Get the Table Column Name*/
out.println("<table>");
out.println("<tr>");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
out.println("<th>" + rsmd.getColumnName(i) + "</th>");
}
out.println("</tr>");
/**Get the Table Row Values*/
if (rs.next()) {
out.println("<tr>");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
out.println("<td>" + rs.getString(i) + "</td>");
}
out.println("</tr>");
}
out.println("</table>");
} else {
out.println(table + " Table Does not Found...!");
}
} catch (SQLException | IOException iosql) {
System.out.println(iosql);
}
return SKIP_BODY;
}
}
Файл TLD:
<?xml version="1.0" encoding="UTF-8"?>
<taglib >
<tlib-version>1.0</tlib-version>
<short-name>pt</short-name>
<uri>/WEB-INF/tlds/PrintTable</uri>
<tag>
<name>printRecored</name>
<tag-class> com.jservlet.jsp.chapter.customtags.PrintSqlTable</tag-class>
<attribute>
<name>id</name>
<required>true</required>
</attribute>
<attribute>
<name>table</name>
<required>true</required>
</attribute>
</tag>
</taglib>
Файл JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/WEB-INF/tlds/PrintTable.tld" prefix="pt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Print Table</title>
</head>
<body>
<pt:printRecored id="49" table="student"> </pt:printRecored>
</body>