我尝试编写有关自定义标记的演示,但这个问题..我讨厌它,我可以自己解决它。
这是我的.TLD文件:
<tag>
<name>custom</name>
<tagclass>MyTag.CustomerTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
这是我的班级CustomerTag:
public class CustomerTag extends TagSupport {
private PageContext _pageContext;
@Override
public int doStartTag() throws JspException {
try {
_pageContext.getOut().println("kakaka"); <-- **here cause exception**
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return SKIP_BODY;
}
@Override
public int doEndTag() throws JspException {
return SKIP_PAGE;
}
}
这是我的JSP文件:
<%@taglib uri="/WEB-INF/Marko.tld" prefix="myTag" %>
<myTag:custom />
请帮助我,谢谢大家
答案 0 :(得分:1)
在您的代码中,您定义了一个永远不会初始化的单独_pageContext
字段;但是,通过扩展TagSupport
,您应该可以访问JSP自动为您初始化的字段pageContext
。
尝试删除变量声明并改为调用pageContext.getOut().println("kakaka");
。