基本步骤:
1.首先编写class类,extends TagSupport类,重写自己需要的方法。
(注:若继承SimpleTagSupport类,则必须将处理代码都放到doTag()方法中 )
2.配置
编写tld文件,配置web.xml文件
3.jsp调用
注:tomcat自带的example是很好的模仿例子
如果class类继承自SimpleTagSupport,则所有操作都要放到doTag()方法中;
如果class类继承自BodyTagSupport,
在BodyTagSupport類別中,doStartTag()預設是傳回EVAL_BODY_BUFFERED,然後執行setBodyContent()與doInitBody()方法,setBodyContent()會設定BodyContent物件,它包括了一些標籤本體文字資訊,及在處理標籤過程中寫出資料至response的物件,在這之後會進入doAfterBody()方法,您可以傳回EVAL_BODY_AGAIN或是SKIP_BODY,如果傳回前者,則照以上的流程再執行一次。
继承SimpleTagSupport类的可以参加tamcat自带例子。
public class PageDivide extends BodyTagSupport {
public Iterator iterator;
public Object element;
public int doStartTag() throws JspException {
try {
Database db = new Database();
db.init();
iterator = db.getCourse().iterator();
} catch (Exception e) {
e.printStackTrace();
}
if (iterator.hasNext()) {
element = iterator.next();
pageContext.setAttribute("course", element);
}
return EVAL_BODY_BUFFERED;
}
public int doAfterBody() {
try {
bodyContent.writeOut(this.getPreviousOut());
} catch (IOException e) {
e.printStackTrace();
}
bodyContent.clearBody();
if (iterator.hasNext()) {
element = iterator.next();
pageContext.setAttribute("course", element);
return EVAL_BODY_AGAIN;
} else
return EVAL_PAGE;
}
}
1.首先编写class类,extends TagSupport类,重写自己需要的方法。
(注:若继承SimpleTagSupport类,则必须将处理代码都放到doTag()方法中 )
2.配置
编写tld文件,配置web.xml文件
3.jsp调用
注:tomcat自带的example是很好的模仿例子
如果class类继承自SimpleTagSupport,则所有操作都要放到doTag()方法中;
如果class类继承自BodyTagSupport,
在BodyTagSupport類別中,doStartTag()預設是傳回EVAL_BODY_BUFFERED,然後執行setBodyContent()與doInitBody()方法,setBodyContent()會設定BodyContent物件,它包括了一些標籤本體文字資訊,及在處理標籤過程中寫出資料至response的物件,在這之後會進入doAfterBody()方法,您可以傳回EVAL_BODY_AGAIN或是SKIP_BODY,如果傳回前者,則照以上的流程再執行一次。
继承SimpleTagSupport类的可以参加tamcat自带例子。
public class PageDivide extends BodyTagSupport {
public Iterator iterator;
public Object element;
public int doStartTag() throws JspException {
try {
Database db = new Database();
db.init();
iterator = db.getCourse().iterator();
} catch (Exception e) {
e.printStackTrace();
}
if (iterator.hasNext()) {
element = iterator.next();
pageContext.setAttribute("course", element);
}
return EVAL_BODY_BUFFERED;
}
public int doAfterBody() {
try {
bodyContent.writeOut(this.getPreviousOut());
} catch (IOException e) {
e.printStackTrace();
}
bodyContent.clearBody();
if (iterator.hasNext()) {
element = iterator.next();
pageContext.setAttribute("course", element);
return EVAL_BODY_AGAIN;
} else
return EVAL_PAGE;
}
}