package jsputils.tags;
import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class VarTagSupport extends SimpleTagSupport {
protected boolean export(Object value) {
if (varName == null)
return false;
JspContext jspContext = getJspContext();
if (value != null)
jspContext.setAttribute(varName, value, varScope);
else
jspContext.removeAttribute(varName, varScope);
return true;
}
}
取得由标记主体生成的内容
标记处理类可以使用从 SimpleTagSupport 继承的 SimpleTagSupport 方法取得表示所处理 JSP 标记主体的 JspFragment。然后,标记处理类可以使用 invoke() 方法执行 JSP 片段;如果要捕获由 JSP 主体生成的内容,则该方法需要 java.io.Writer 参数。invokeBody() 方法将这些操作分组,并返回 String 类型的主体内容: [Page]
package jsputils.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.StringWriter;
import java.io.IOException;
public class VarTagSupport extends SimpleTagSupport {
protected String invokeBody() throws JspException {
JspFragment body = getJspBody();
StringWriter buffer = new StringWriter();
try {
body.invoke(buffer);
} catch (IOException x) {
throw new JspException(x);
}
return buffer.toString();
}
&nbs