[Java lista] int[] paraméter FreeMarkerből

CoL col at gear.hu
2009. Sze. 30., Sze, 19:55:48 CEST


Hali,

István Székely wrote:
> Sziasztok!
> 
> Van egy osztály, aminek az egyik metódusát próbálom meghívni egy 
> FreeMarker template-ből. A metódusnak van egy int[] paramétere. Ehhez a 
> template-ben a következőt csinálom:
> [#assign ids = [167, 168, 165, 164, 176, 177, 190, 175]]
> 
> majd ezzel az ids szekvenciával próbálom hívni a metódust. Az eredmény:
> 
> Caused by: freemarker.template.TemplateModelException: Can not unwrap 
> argument [167, 168, 165, 164, 176, 177, 190, 175] to [I
>     at 
> freemarker.ext.beans.SimpleMemberModel.unwrapArgument(SimpleMemberModel.java:132)
>     at 
> freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:120)
>     at 
> freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:98)
>     at 
> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
>     ... 10 more
> 
> Azt értem, hogy nem tud csinálni belőle int tömböt, de miért nem, és 
> mitől fog tudni?

ket egyszerubb lehetoseg:
- atirod a methodusod, hogy nem int[]-et varjon, vagy irsz ra 1 wrap-ert 
ami ami vesszos listabol csinal int[]-es es meghivja azt amit kell, es 
akkor ids = '167,168...'

- egy osztalyt assingolsz ertekkent
assign ids = 'com.enyem.osztaly.jol'?new().getIntArray('167,168...')

Amugy a [# az gondolom <#. Ha direkt [ ] -t hasznalsz akkor viszont 
kiprobalnam, hogy nem-e a [ ] nyito zaro kavar be, mert a sima <#assign 
x = [1, 2, 3, 4]> mukodik.

Igaz nem int[] tomb, hanem lista, de maga az assignolas kell menjen.

C.


További információk a(z) Javalist levelezőlistáról