小编典典

JSP标签生命周期

jsp

我刚刚在代码中引入了一个错误,因为我似乎误解了jsp标签生命周期。

该标记在发生错误之前的工作方式是这样的:我将标记的一些集合作为属性传递给它,并将其显示为表格。集合已从控制器传递到JSP。

错误之后:我删除了设置集合的属性。相反,在标记中,我检查集合是否为null,然后从请求中按名称抓取(使用命名约定)。

我没想到的是:最初在标记中设置了集合之后,它在以后的执行中就永远不会为空!在TLD中,它仍被定义为非必需属性。

希望 标记在两次执行之间不会保留先前的值。


阅读 258

收藏
2020-06-08

共1个答案

小编典典

您自己回答了这个问题-
已汇总。请参阅标签教程,以了解在Java实现中要实现的内容以及从那里链接的页面,其中包含调用序列

ATag t = new ATag();
t.setPageContext(...);
t.setParent(...);
t.setAttribute1(value1);
t.setAttribute2(value2);
t.doStartTag();
t.doEndTag();
t.release();

也就是说,根据API的要求在doEndTag()中重新初始化标签实例。(根据朱利安·克朗格的评论更改,谢谢)

请注意,池化可能与容器有关,但是合法(并且由于API设置,可能在任何地方都可以进行)。

2020-06-08