我正在以下列方式创建自定义jsp标记:
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
public class FooTag extends SimpleTagSupport
{
public void doTag() throws JspException, IOException
{
JspWriter out = getJspContext().getOut();
out.println( "some response" );
}
}
我的问题是,我有办法访问HttpServletRequest
方法中的HttpServletResponse
或doTag()
吗?如果它不能从java中获得,我可以以某种方式从jsp传递它作为参数吗?请指教。
答案 0 :(得分:1)
由于您正在扩展SimpleTagSupport
,因此可以调用继承的方法getJspContext()
,该方法将返回JspContext
对象(这将使您可以访问页面,请求和会话对象),将其投放到PageContext
:
PageContext context = (PageContext) getJspContext();
然后只需从ServletRequest
对象中检索context
:
ServletRequest request = (HttpServletRequest) context.getRequest();