无法访问FTL文件中从Modelmap发送的对象列表

迪帕克·拉玛克里希南·卡利达斯(Deepak Ramakrishnan Kalidass)

我是ftl(FreeMarker模板)的新手。我使用这样的模型映射从控制器发送对象列表

我的控制器代码

@RequestMapping(value="/xxx")
public String myMethod(ModelMap model){
  List<MyDTO> 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;
   } 
}

现在我尝试从我的ftl的javascript访问dto。我尝试了很多这样的方法:

 var dto=${dto};

它说$ {....}内必须是字符串,整数,布尔值..等等等等

所以我想像这样迭代以获得我想要的东西

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

但是我也无法以这种方式访问​​它。我应该在这里做什么?我认为我缺少语法。有人可以帮我吗?

user3145373津

您可以通过以下方式轻松访问modelMap数据:

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

您无需发送的长度DTO,如果您将其用于其他目的,则可以使用它。

而且您只需迭代列表,就不需要for循环。

这个

如果要使用JavaScript访问数据,则可以在控制器上的页面加载时使用ajax请求,并向您发送包含数据的响应,然后处理该数据并在FTL页面上打印。如果可能的话,使用一些JavaScript框架使处理这样的请求变得容易和方便。

您仍然可以:var dtoList= "${dto}";不是没有报价。

参见答案。

对于检查是否为空:

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

您可以在这里检查

随着例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章