Каковы различные способы повторного использования макета в Stripes - PullRequest
0 голосов
/ 21 января 2012

В среде представления Stripes для Java рендеринг шаблонов и предоставление разделов кода в шаблон можно выполнить несколькими способами:

Секция кода может быть определена в шаблоне с помощью

  • <stripes:layout-component name="foo" />
  • ${foo}

Вы можете поставить эти компоненты

  • с использованием <stripes:layout-component name="foo">bar</stripes:layout-component> внутри <stripes:layout-render ...></stripes:layout-render>
  • как параметры <stripes:layout-render ... foo="bar">

Чтобы сделать идею еще более сложной, переменные JSTL могут быть

  • определено с использованием JSTL <c:set var="foo" value="bar" />
  • выводится с использованием <c:out value="${foo}">

Как все эти способы связаны друг с другом, и каждый из них должен использоваться?

1 Ответ

0 голосов
/ 22 января 2012

Итак, я провел некоторое тестирование, какое определение работает с каким способом вывода

Результат теста:

                parametrized    layout-component    <-- Outputted with
layout-render       OK                FAIL
layout-component    OK                OK

^
Defined with

Я также провел некоторое тестирование, используя <c:out> и <c:set>

Вердикт:

  • Переменная, выведенная с помощью layout-component, НЕ МОЖЕТ быть определена с помощью ANYTHING ELSE, но layout-component
  • Переменная, определенная с помощью layout-render, кажется, установленакак переменная JSTL, ничего другого
    • Это способ передачи строки как есть из шаблона на страницу
  • Добавление переменной с помощью layout-component определяетПеременная JSTL тоже
    • Однако это НЕ МОЖЕТ быть изменено до того, как это возможно layout-component вывело ее
  • Преимущество использования layout-component заключается в том, что он наследуется по нескольким шаблонам
    • скажем home.jsp рендеринг std-tmpl.jsp, что делает base.jsp.В этом случае home.jsp может предоставить переменную настройку layout-component: foo, и она будет выведена там, где она установлена ​​в base.jsp
  • Для вывода переменной, которая не должнавключая HTML, всегда следует использовать

    <c:out value="${foo}" />

    Это будет HTML экранировать следующие символы: <> & '"

Все комментарии идругие объяснения высоко ценятся!

...