Настройка производительности
1.Включить кэширование шаблонов Freemarker
В версиях Struts до 2.0.10 вам пришлось скопировать каталог / template из jar Struts 2 в корне WEB_APP, чтобы использовать встроенный механизм привязки Freemarker для достиженияаналогичные результаты.
Встроенный механизм кэширования Freemarker не может правильно кэшировать шаблоны, когда они извлекаются из пути к классам.Копирование их в корень WEB_APP позволяет Freemarker правильно их кешировать.Freemarker просматривает время последнего изменения шаблона, чтобы определить, нужно ли ему перезагрузить шаблоны.Ресурсы, извлеченные из пути к классам, не имеют времени последнего изменения, поэтому Freemarker будет перезагружать их при каждом запросе.
2.При переопределении темы скопируйте все необходимые шаблоны в каталог темы.
Производительность снижается, если шаблон не может быть найден в текущем каталоге.Это связано с тем, что Struts 2 должен сначала проверить шаблон в текущей теме, а затем вернуться к родительской теме.В будущем это наказание может быть устранено путем реализации отсутствующего кэша шаблонов в Struts 2.
Пример
YourWebApp
|-- WebContent
|-- templates
|-- ajax
|-- controlheader.ftl, datetimepicker.ftl, dojoRequire.js, head.ftl
|-- simple
|-- [All files]
|-- xhtml
|-- controlfooter.ftl, controlheader-core.ftl, controlheader.ftl, tooltip.ftl, validation.js
<struts>
<constant name="struts.ui.templateDir" value="templates" />
<constant name="struts.ui.theme" value="simple" />
</struts>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<head>
<sx:head />
</head>
<body>
<sx:datetimepicker name="date" />
</body>
Datetimepicker тегов Ajax - это плохо, вы считаете jQuery UI Timepicker / Datetimepicker