ورود

View Full Version : سوال: عدم اجرای doAfterBody در tagLib



koosha_es
چهارشنبه 07 آبان 1393, 21:21 عصر
سلام به همه doAfterBody در تگ لیب من اجرا نمیشود در حالی که doStartTag اجرا میشود (با اینکه return تابع doStartTag هست:EVAL_BODY_AGAIN)

این فایل tld من در WEB-INF








<?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>


<tag>
<name>accountTable</name>
<tagclass>view.AccountsTable</tagclass>
<bodycontent>JSP</bodycontent>

</tag>
</taglib>



و این هم فایل AccountTable.java







public class AccountsTable extends BodyTagSupport
{


public int doStartTag() throws javax.servlet.jsp.JspException {
System.out.println("hiiiiiiiiiiiiiiiiiiiiiiii");




return EVAL_BODY_AGAIN;
}
public int doAfterBody() throws javax.servlet.jsp.JspException {

System.out.println("hellooooooooooooooo");
try {
getBodyContent().getEnclosingWriter().print("im here");
} catch (IOException e) {
e.printStackTrace();
}

return SKIP_BODY;

}
}




و در نهایت صفحه ی JSP من:







<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@taglib prefix="table" uri="/WEB-INF/table.tld" %><html><head> <title></title></head><body>


<table:accountTable ></table:accountTable>

</body></html>



پس از اجرا print که متعلق به doStartTag هست اجرا میشود اما در doAfterBody هیچ خروجی نه در console و نه در صفحه ی وب ندارم ممنون میشوم کسی بگه اشکال کجاست؟