В процессе выноса часто используемых кусков кода в теги возникло неудобство, связанное с подключением требуемого для них JavaScript. Необходимо было подключать его один раз, сколько бы раз тег не использовался.
По-быстрому возникло вот такое решение:
<%-- Allows to include each unique JavaScript file only once even if this tag is called multiple times. --%> <%@ attribute name="src" required="true" %> <% if(null==request.getAttribute("asset.js.".concat(src))){ %> <script type="text/javascript" src="${src}"></script> <% request.setAttribute("asset.js.".concat(src), true);%> <% } %>
Используется, соответственно, как-то так:
<asset:js src="/js/jquery.js" />