gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:25:48 24 4
gpt4 key购买 nike

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

我的 Controller 代码

@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};

它说 ${....} 中必须包含的内容应该是字符串、整数、 boolean 值 ..blah blah

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

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

但我也无法通过这种方式访问​​它。我应该在这里做什么?我想我缺少语法。有人可以帮我解决这个问题吗?

最佳答案

您可以轻松访问 modelMap 数据:

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

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

并且您可以简单地迭代列表,不需要 for 循环。

this.

如果您想使用 JavaScript 访问数据,那么您可以在 Controller 上的页面加载时使用 ajax 请求,它会向您发送包含数据的响应,然后处理该数据并在 FTL 页面上打印。如果可能的话,使用一些 JavaScript 框架,这样处理这样的请求就变得简单方便。

您仍然可以这样做:var dtoList= "${dto}";。并非没有引用。

参见SO Answer.

用于检查是否为空:

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

您可以查看here.

example.

关于java - 无法访问从 FTL 文件中的 modelmap 发送的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com