struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From struts....@spamgourmet.com
Subject Re: Dynamic Attributes can't be boolean? StrutsUtil.translateVariables exception
Date Fri, 25 May 2012 19:13:53 GMT
Chris,

Surrounding it with quotes would mean that I'd have to change all my UI templates, as well
as my theme templates.   Note how my theme template expects a Boolean (not a String) attribute,
below:

> < <#if parameters.required?default(false)>
> <  required="true"<#rt/>
> < </#if>


From my perspective this represents a regression from 2.3.1.2, where what I had previously
worked fine.
It could be due to FreeMarker change, since I also have this in my log:

Caused by: freemarker.template.TemplateModelException: Argument type mismatch; can not unwrap
argument #1 (class: freemarker.ext.beans.BooleanModel, toString: "true") to class java.lang.String
at freemarker.ext.beans.SimpleMemberModel.createArgumentTypeMismarchException(SimpleMemberModel.java:175
at freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:123)
at freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:100)
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)



On May 25, 2012, at 1:58 PM, struts.rgm@spamgourmet.com wrote:

> After installing Struts 2.3.4, it appears that dynamic attributes must be strings now?
> 
> I've modified text.ftl in my custom theme like this (diff output):
> 23c23
> < <input type="${parameters.type?default("text")}"<#rt/>
> ---
> > <input type="text"<#rt/>
> 46,54d45
> < <#if parameters.required?default(false)>
> <  required="true"<#rt/>
> < </#if>
> < <#if parameters.autofocus?default(false)>
> <  autofocus="autofocus"<#rt/>
> < </#if>
> < <#if parameters.pattern?? >
> <  pattern="${parameters.pattern?html}"<#rt/>
> < </#if>
> 62c53
> < />
> 
> 
> So that I can use dynamic attributes / HTML5 goodness like this:
> 
> <@s.text type="email" key="user.email" required=true autofocus=true />
> 
> But now Struts 2.3.4 blows up with this message:
> 
> 
> Method public java.lang.String org.apache.struts2.util.StrutsUtil.translateVariables(java.lang.String)
threw an exception when invoked on org.apache.struts2.util.StrutsUtil@540948a7
> The problematic instruction:
> ----------
> ==> assignment: value=struts.translateVariables(keyValue)!keyValue [on line 27, column
3 in /themes/simple/dynamic-attributes.ftl]
>  in include "/${parameters.templateDir}/simple/dynamic-attributes.ftl" [on line 52, column
1 in /themes/simple/text.ftl]
>  in include "/${parameters.templateDir}/simple/text.ftl" [on line 25, column 1 in /themes/my-custom-theme/text.ftl]
> ----------
> 
> I made sure to update my simple theme, perhaps I missed some template files?  Can anyone
help?


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message