struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven James (JIRA)" <>
Subject [jira] [Updated] (WW-4319) struts2-jquery-plugin custom tag templates broken
Date Wed, 09 Apr 2014 14:26:30 GMT


Steven James updated WW-4319:


Maven demo app

> struts2-jquery-plugin custom tag templates broken
> -------------------------------------------------
>                 Key: WW-4319
>                 URL:
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions:
>         Environment: Struts, struts2-jquery-plugin 3.7.0, tomcat v7.0
>            Reporter: Steven James
>         Attachments:
> Hi,
> 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
> 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:
>  {code:xml}
> <#if parameters.parentTheme == 'css_xhtml'>
> <#include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" />
> </#if>
> {code}
> 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:
> {code:xml} 
> <#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl">
> {code}
> And this is where it starts to go wrong. The {noformat}${parameters.expandTheme}{noformat}
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.
> Thanks
> Steve

This message was sent by Atlassian JIRA

View raw message