imansible accedere all’elenco di oggetti inviati da modelmap nel file FTL

Sono nuovo di ftl (modello di FreeMarker). Invio una lista di oggetti dal mio controller usando la mappa dei modelli come questa

Il mio codice del controller

@RequestMapping(value="/xxx") public String myMethod(ModelMap model){ List dto = mymethods(); // I return some list objects in this method model.addAttribute("dto",dto); model.addAttribute("dtoLength",dto.size()); return "myview"; } 

MyDTO.java

 public class myDTO{ Public String var1; Public String var2; public String getVar1() { return var1; } public void setVar1(String var1) { this.var1 = var1; } public String getVar2() { return var2; } public void setVar2(String var2) { this.var2 = var2; } } 

Ora provo ad accedere a dto dal mio ftl’s javascript.Io l’ho provato in molti modi come questo:

  var dto=${dto}; 

ha detto che tutto ciò che deve essere dentro $ {….} dovrebbe essere o stringa, intero, booleano ..blah blah

Quindi ho pensato di iterarlo in questo modo per ottenere quello che voglio

 var valueIWanted; if(${dtoLength}>0){ for(var i=0 ; i < ${dtoLength} ; i++){ ticketList[i] = ${ticket[i].var2}; } } 

ma non ero in grado di accedervi in ​​questo modo. Cosa dovrei fare qui dentro? Penso che mi manca la syntax. Qualcuno mi può aiutare con questo?

Puoi facilmente accedere ai dati modelMap come:

  <#list dto as dtoList>  ${dtoList.var1} ${dtoList.var1}   

Non è necessario inviare la lunghezza di DTO , se la si utilizza per altri scopi, è ansible utilizzarla.

e puoi semplicemente scorrere l’elenco, non hai bisogno for ciclo.

Guarda questo.

Se si desidera accedere ai dati utilizzando il codice JavaScript, è ansible utilizzare una richiesta Ajax sul caricamento della pagina sul controller e invia una risposta con i dati, quindi elaborare tali dati e stampare sulla pagina FTL. Se ansible, utilizzare un framework JavaScript in modo tale che gestire tale richiesta diventi facile e conveniente.

Ancora puoi fare: var dtoList= "${dto}"; . non senza citazione.

Vedi SO Answer.

Per controllare vuoto o no:

 [#if dto??] //inside it write all your code [/#if] 

Puoi verificarlo qui.

Con esempio

Potresti provare

var dto = “$ {dto}”;

invece di

var dto = $ {dto};