4

这可能是一个非常新手的问题,但我没有找到任何令人满意的东西

我想在 JSP 中做这样的事情(最好是开箱即用):

例如在一个名为products.jsp虚构实现的文件中,它解释了我想要什么

<x:named-segment name="product">
     Product: <strong>${product.name}</strong> <br/>
     price: ${product.price}
</x:named-segment>

稍后在它定义的同一个JSP 中的不同位置使用它

<table>
   <c:forEach var="product" items="${products}">
      <tr>
         <td><x:use-segment name="product"/></td>
      </tr>
   </c:forEach>
</table>

我查看了JSP tagsJSP Fragments,但是片段片段只是从调用者 JSP 传递到 JSP 标签,我希望它位于同一位置

唯一的解决方案是为那个特定的小片段创建一个 JSP 标记(或包含?)

我错过了一些非常基本的东西吗?

4

2 回答 2

1

如果您在很多地方想要的一小段文本是静态的,我会推荐一个 JSP 包含。但是,如果文本来自数据库/平面文件/XML,我建议使用自定义标签。从您提供的示例中,您似乎正在尝试列出产品及其价格。这可以在自定义标签中轻松完成。

在您的标签类中,读取数据,创建一个方法,为数据创建 HTML 标签并以字符串形式返回,打印字符串。现在在您的 JSP 中,在需要文本的任何地方调用自定义标记。当然,您需要参数化标签以确定在什么位置获取/显示什么。

高温高压

于 2010-03-18T11:54:03.420 回答
0

我感觉到你的痛苦@EranMedan,仍然不敢相信这不是 JSP 的一个特性。经过多年想要它,我在这里写了自己的简单解决方案来做你(和我)想要的: https ://stackoverflow.com/a/25575120/1607642

于 2015-08-21T09:25:33.327 回答