[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