Это объяснит более подробно о рендеринге шаблона:
http://grails.org/doc/latest/ref/Tags/render.html
Для вашего кода это звучит так, как если бы вы просто делали это в shoppingcart.gsp и summary.gsp:
<g:render template="carttemplate" />
Тогда _carttemplate.gsp будет выглядеть так:
<table id="newTable" style="display:none">
<thead><th>item name</th><th>desc</th><th>business justification</th><th>start date</th> <th>end date</th></thead>
<tbody></tbody>
</table>
Единственная сложность заключается в том, как вы заполняете данные с помощью JavaScript. Если вам нужно несколько мест, он может использовать один и тот же javascript, чем вы можете поместить свой скрипт в файл .js и ссылаться на него из любого gsp, который представляет ваш шаблон. Если они разные, то вы не сможете использовать их много раз.
Также обратите внимание, что вам может потребоваться указать каталог шаблона в теге g: render. Давайте предположим эту структуру:
- просмотры
- корзина
- shoppingcart.gsp
- _carttemplate.gsp
- Резюме
shoppingcart.gsp может делать:
<g:render template="carttemplate" />
Но Summary.gsp должен сделать:
<g:render template="/cart/carttemplate" />