package com.aggrepoint.winlet.jsp.site.taglib;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.aggrepoint.winlet.site.SiteContext;
/**
* 显示页面title。如果cfg.cfg中没有指定title,则显示缺省的title。
*
* <site:title>缺省Title</site:title>
*
* @author Jiangming Yang (yangjm@gmail.com)
*/
public class TitleTag extends BodyTagSupport {
static final long serialVersionUID = 0;
public int doStartTag() throws JspException {
SiteContext sc = (SiteContext) pageContext.getRequest().getAttribute(
SiteContext.SITE_CONTEXT_KEY);
if (sc.getPage().getTitle() != null) {
try {
pageContext.getOut().print(
"<title>" + sc.getPage().getTitle() + "</title>");
} catch (Exception e) {
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
return EVAL_BODY_BUFFERED;
}
public int doAfterBody() throws JspTagException {
BodyContent body = getBodyContent();
try {
JspWriter out = getPreviousOut();
out.write("<title>");
body.writeOut(out);
out.write("</title>");
} catch (IOException e) {
throw new JspTagException(e.getMessage());
}
body.clearBody();
return SKIP_BODY;
}
}