【问题标题】:Custom tag - get access to data in model?自定义标签 - 访问模型中的数据?
【发布时间】:2011-01-12 00:00:40
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    getJspContext().getAttribute("key");
    

    这些属性有四个作用域——页面、请求、会话和应用程序,所以要小心设置它们的位置。有一个重载的方法来提供一个特定的范围。

    当然,你也可以定义一个标签属性,然后这样传递。

    【讨论】:

    • 那么这是不是比通过参数将数据传递给自定义标签更好的方法?
    • 现在,情况不同了。当然,您可以将其作为参数传递。但您也可以从页面上下文中访问其他值。
    猜你喜欢
    • 2020-10-05
    • 1970-01-01
    • 2011-01-10
    • 2014-06-15
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多