Re: freemarker error: Expected hash, evaluated instead to ...
Daniel Dekany <[email protected]>
| Newsgroups | gmane.comp.web.freemarker.user |
|---|---|
| Message-ID | <[email protected]> |
Wednesday, December 16, 2009, 4:24:08 PM, Jake Ochs wrote:
> I set the NotesDocWrapper to implement a TemplateHashModel and the
> collection extends AbstractList and it works. The only issue is that the
> NotesDocWrapper has a custom method that I want to call from Freemarker
> (in addition to the standard 'get'). Again, this custom method is
> available if I drop a NotesDocWrapper directly onto the root hash.
That's strange because if NotesDocWrapper implements TemplateModel (or
a subinterface of it) it shouldn't be re-wrapped, means, it should
behave no how you retrieve it. Are you sure you don't mess up
something there?
Anyway... since NotesDocWrapper is already a TemplateMode, FreeMarker
will not (should not) do any extra magic with it (like exposing
methods). So if you want to call a method, you have to return it as a
hash item.
> On 12/16/2009 9:45 AM, Daniel Dekany wrote:
>> Wednesday, December 16, 2009, 2:03:10 PM, Jake Ochs wrote:
>>
>>> I've created a custom collection that implements iterator and returns
>>> another custom object - NotesDocWrapper (wraps a Lotus Domino Document
>>> object.) My template then lists the docs collection I placed in the root
>>> hash and iterates over the doc accessing a field like so:
>>> <#list docs as doc>
>>> <li>${doc.Subject}</li>
>>> </#list>
>>> The NotesDocWrapper implements TemplateModel and has a get method so it
>>> can return a Notes Document field using the standard template dot syntax
>>> as used above. I've used the NotesDocWrapper by itself, dropping it into
>>> the root hash successfully, but when I attempt to nest it in this manner
>>> I get a freemarker exception (see full stacktrace at bottom of post)
>>>
>>> How do I prevent Freemarker from expecting a hash instead of using the
>>> wrapper I supplied for the nested object? (assuming this is the problem)
>>> Any tips are appreciated.
>>
>> Exactly what does NotesDocWrapper extend and implement? It should
>> implement TemplateHashModel (or TemplateHashModelEx).
--
Best regards,
Daniel Dekany
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev