自定义标记 - 可以访问模型中的数据吗?

时间:2010-02-02 02:43:24

标签: java jsp java-ee spring-mvc jstl

我通过扩展SimpleTagSupport创建自定义JSP标记。通常在视图中,我可以使用jstl从<c:out value="${key.attr}" />执行类似操作从模型中提取数据。我的问题是:在创建自定义标签时(使用SimpleTagSupport),如何从模型中获取数据?感谢。

为了澄清,我需要一个自定义标签来对模型中的一段数据进行一些格式化。如果自定义标签不是最好的方法(但仍然喜欢我原来的问题的答案),我愿意接受建议。

更新:根据Bozhos的回答,似乎我可以使用JSP上下文从模型中获取数据。这是通常的常规方式(即在显示之前使用自定义标签操纵模型中的数据)?或者可以将数据作为参数传递给自定义标记逻辑(即通过标记属性)?我只想弄清楚每种方法的优缺点。感谢。

1 个答案:

答案 0 :(得分:1)

JSTL操作的所有数据都存储在jsp上下文属性中。例如,您可以通过调用:

获取key变量
getJspContext().getAttribute("key");

这些属性有四个范围 - 页面,请求,会话和应用程序,因此在设置它们时要小心。有一种重载方法可以提供特定的范围。

当然,您可以改为定义标记属性并以此方式传递。