JSP标签生命周期

2023-11-23

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

该标签在出现错误之前是这样工作的: 我将一些集合作为属性传递给标签,并将其显示为表格。该集合从控制器传递到 JSP 中。

出现错误后: 我删除了设置集合的属性。相反,在标签中,我检查集合是否为空,然后通过请求中的名称获取它(使用命名约定)。

让我没想到的是: 在标签中最初设置集合后,它在后续执行中永远不会变为空!它仍然被定义为 TLD 中的非必需属性。

I expected标签在执行之间不保留先前的值。


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

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

也就是说,根据 API 的要求在 doEndTag() 中重新初始化您的标签实例。 (根据 Julien Kronegg 的评论进行了更改,谢谢)

请注意,池化可能依赖于容器,但很合法(并且,由于 API 设置,可能在任何地方都进行)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP标签生命周期 的相关文章

随机推荐