Как создать Макрос / Сниппет / HTML-фрагмент / Именованный раздел в JSP без использования тегов /includes/JSPFragments?

StackOverflow https://stackoverflow.com/questions/2220778

Вопрос

Это может быть вопрос для очень новичка, но я не нашел ничего удовлетворяющего

Я хочу сделать что-то подобное в 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, и Фрагменты JSP, но там фрагмент фрагмента просто передается из вызывающего JSP в тег JSP , и я хочу, чтобы он находился в том же месте

Единственное ли решение - создать тег JSP для этого конкретного небольшого фрагмента (или включить?)

Я упускаю что-то очень простое?

Это было полезно?

Решение

Если небольшой фрагмент текста, который вы хотите использовать во многих местах, является статичным, я бы рекомендовал включить JSP.Однако, если текст взят из базы данных / плоского файла / XML, я бы рекомендовал использовать пользовательский тег.Из приведенного вами примера создается впечатление, что вы пытаетесь составить список товаров и их цен.Это может быть легко выполнено с помощью пользовательского тега.

В вашем классе тегов прочитайте данные, создайте метод, который создаст HTML-теги для данных и вернет их в виде строки, распечатайте строку.Теперь в вашем JSP вызовите пользовательский тег везде, где вам нужен текст.Конечно, вам нужно параметризовать тег, чтобы определить, что извлекать / отображать в каком месте.

HTH

V

Другие советы

Я чувствую твою боль @EranMedan , все еще не могу поверить, что это не особенность JSP.После многих лет желания этого, я написал здесь свое собственное простое решение, чтобы делать то, что вы (и я) хотим:https://stackoverflow.com/a/25575120/1607642

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top