You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Tim Ruppert <ti...@hotwaxmedia.com> on 2007/01/14 17:08:46 UTC

Grabbing Static Content in an ftl file

All, in my ftl file, I'm trying to grab a small piece of content thru  
the ContentWorker renderContentAsTextCache method.  I found an  
example where this sort of thing is being done in applications/ 
content/webapp/content/cms/CMSContentEdit.ftl , but when I follow  
that style I get an error.

Here is how it is done in that file:

<#assign currentTextData=Static 
["org.ofbiz.content.data.DataResourceWorker"].renderDataResourceAsTextCa 
che(delegator, dataResourceId, (Map)null, (GenericValue)null, (Locale) 
null, (String)null) />

Here is how I do it:

<#assign textdata = Static 
["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache 
(delegator, contentId, (Map)null, (GenericValue)null, (Locale)null,  
"text/html")>

I am getting an error that is slightly unexplainable:

freemarker.template.TemplateModelException: No signature of method  
renderContentAsTextCache accepts 9 arguments

So, when I remove the casting of the nulls, and the signature look  
like this:

<#assign textdata = Static 
["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache 
(delegator, contentId, null, null, null, "text/html")>

I no longer get that error - I get the following error:

freemarker.template.TemplateModelException: No signature of method  
renderContentAsTextCache matches  
(org.ofbiz.entity.GenericDelegator,java.lang.String,org.ofbiz.entity.Gen 
ericEntity$NullField,org.ofbiz.entity.GenericEntity 
$NullField,org.ofbiz.entity.GenericEntity$NullField,java.lang.String)

Does anyone have any insight on this one?

Cheers,
Tim
--
Tim Ruppert
HotWax Media
http://www.hotwaxmedia.com

o:801.649.6594
f:801.649.6595



Re: Grabbing Static Content in an ftl file

Posted by "David E. Jones" <jo...@hotwaxmedia.com>.
Tim,

I just spent a few minutes looking at this... I think this is still a  
problem because this sort of operation is usually run from a bsh  
script, or from the screen def with the content or sub-content tags.

What appears to be happening is that FTL isn't treating "null" as a  
keyword, which is a problem for OFBiz because we actually put a  
variable called "null" in the context to use in simple-method files  
and such. If you look at the error you got it mentions the  
"org.ofbiz.entity.GenericEntity$NullField" object which is what the  
"null" field in the context is set to so we can use easily use  
conditions like foo equals null.

For now one solution is to do this in a bsh script, or in a screen  
included from the FTL file.

This is something we should probably fix at some point though...

-David


On Jan 14, 2007, at 10:07 AM, Tim Ruppert wrote:

> I was able to get past it by adding another delegating method to  
> ContentWorker, but boy does that seem like a hack.  I added the  
> method that doesn't need the templateContext (map) or the view  
> (GenericValue) - and just delegated in the java code.
>
> Anybody who has any other ideas that might fix this the right way -  
> please let me know.
>
> Cheers,
> Tim
> --
> Tim Ruppert
> HotWax Media
> http://www.hotwaxmedia.com
>
> o:801.649.6594
> f:801.649.6595
>
>
> On Jan 14, 2007, at 9:08 AM, Tim Ruppert wrote:
>
>> All, in my ftl file, I'm trying to grab a small piece of content  
>> thru the ContentWorker renderContentAsTextCache method.  I found  
>> an example where this sort of thing is being done in applications/ 
>> content/webapp/content/cms/CMSContentEdit.ftl , but when I follow  
>> that style I get an error.
>>
>> Here is how it is done in that file:
>>
>> <#assign currentTextData=Static 
>> ["org.ofbiz.content.data.DataResourceWorker"].renderDataResourceAsTex 
>> tCache(delegator, dataResourceId, (Map)null, (GenericValue)null,  
>> (Locale)null, (String)null) />
>>
>> Here is how I do it:
>>
>> <#assign textdata = Static 
>> ["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache( 
>> delegator, contentId, (Map)null, (GenericValue)null, (Locale)null,  
>> "text/html")>
>>
>> I am getting an error that is slightly unexplainable:
>>
>> freemarker.template.TemplateModelException: No signature of method  
>> renderContentAsTextCache accepts 9 arguments
>>
>> So, when I remove the casting of the nulls, and the signature look  
>> like this:
>>
>> <#assign textdata = Static 
>> ["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache( 
>> delegator, contentId, null, null, null, "text/html")>
>>
>> I no longer get that error - I get the following error:
>>
>> freemarker.template.TemplateModelException: No signature of method  
>> renderContentAsTextCache matches  
>> (org.ofbiz.entity.GenericDelegator,java.lang.String,org.ofbiz.entity. 
>> GenericEntity$NullField,org.ofbiz.entity.GenericEntity 
>> $NullField,org.ofbiz.entity.GenericEntity$NullField,java.lang.String)
>>
>> Does anyone have any insight on this one?
>>
>> Cheers,
>> Tim
>> --
>> Tim Ruppert
>> HotWax Media
>> http://www.hotwaxmedia.com
>>
>> o:801.649.6594
>> f:801.649.6595
>>
>>
>


Re: Grabbing Static Content in an ftl file

Posted by Tim Ruppert <ti...@hotwaxmedia.com>.
I was able to get past it by adding another delegating method to  
ContentWorker, but boy does that seem like a hack.  I added the  
method that doesn't need the templateContext (map) or the view  
(GenericValue) - and just delegated in the java code.

Anybody who has any other ideas that might fix this the right way -  
please let me know.

Cheers,
Tim
--
Tim Ruppert
HotWax Media
http://www.hotwaxmedia.com

o:801.649.6594
f:801.649.6595


On Jan 14, 2007, at 9:08 AM, Tim Ruppert wrote:

> All, in my ftl file, I'm trying to grab a small piece of content  
> thru the ContentWorker renderContentAsTextCache method.  I found an  
> example where this sort of thing is being done in applications/ 
> content/webapp/content/cms/CMSContentEdit.ftl , but when I follow  
> that style I get an error.
>
> Here is how it is done in that file:
>
> <#assign currentTextData=Static 
> ["org.ofbiz.content.data.DataResourceWorker"].renderDataResourceAsText 
> Cache(delegator, dataResourceId, (Map)null, (GenericValue)null,  
> (Locale)null, (String)null) />
>
> Here is how I do it:
>
> <#assign textdata = Static 
> ["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache 
> (delegator, contentId, (Map)null, (GenericValue)null, (Locale)null,  
> "text/html")>
>
> I am getting an error that is slightly unexplainable:
>
> freemarker.template.TemplateModelException: No signature of method  
> renderContentAsTextCache accepts 9 arguments
>
> So, when I remove the casting of the nulls, and the signature look  
> like this:
>
> <#assign textdata = Static 
> ["org.ofbiz.content.content.ContentWorker"].renderContentAsTextCache 
> (delegator, contentId, null, null, null, "text/html")>
>
> I no longer get that error - I get the following error:
>
> freemarker.template.TemplateModelException: No signature of method  
> renderContentAsTextCache matches  
> (org.ofbiz.entity.GenericDelegator,java.lang.String,org.ofbiz.entity.G 
> enericEntity$NullField,org.ofbiz.entity.GenericEntity 
> $NullField,org.ofbiz.entity.GenericEntity$NullField,java.lang.String)
>
> Does anyone have any insight on this one?
>
> Cheers,
> Tim
> --
> Tim Ruppert
> HotWax Media
> http://www.hotwaxmedia.com
>
> o:801.649.6594
> f:801.649.6595
>
>