struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stuart James <>
Subject I would like help with the template theme changes in
Date Wed, 09 Apr 2014 12:00:56 GMT
I am developing an application which has been predominantly written with Struts2 version
and the struts2-jquery-plugin version 3.6.1.
I have recently upgraded to Struts2 version and struts2-jquery-plugin version 3.7.0.
The application has used the css_xhtml theme throughout, defined in struts.xml.
Since the upgrade, the HTML markup of the struts2-jquery-plugin (sj:) components has been
adversly affected.
I have debugged the application and found that the issue is caused by the changes made to
themes under WW-4145.
The situation appears to be this:
The struts2-jquery-plugin has implemented custom tags for their components and these classes
will return the value of 'jquery' in response to the getTheme() method. They do appear to
correctly store a 'parentTheme' parameter with the correct value (in my case from the parent
form element) of 'css_xhtml'.
The struts2-jquery-plugin custom templates are successfully found on the templates/jquery
path, but some of them contain 'include' statements, for example, the datepicker.ftl contains
the following snippet:
 <#if parameters.parentTheme == 'css_xhtml'>
  <#include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" />
So, at this point, all is well, the correct controlheader.ftl template for the css_xhtml theme
is found and included, however this template (now) contains the following include:
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl">
And this is where it starts to go wrong. The ${parameters.expandTheme} resolves to '~~~jquery'
and, after reading the WW-4145 change info, I understand that this will cause the ThemeManager
to load the template from the parent theme as defined in the file. This,
in the case of the struts2-jquery-plugin, is defiend as 'xhtml' and NOT 'css_xhtml' as discovered
from the parent form component. Consequently, the wrong controlheader-core.ftl template is
included, and the resulting HTML includes incorrect <tr> and <td> tags which ultimately
break the page.
Other than hacking the templates, I cannot see a satisfactory way of resolving this problem,
so any assistance would be gratefully received.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message