gpt4 book ai didi

java - 如何将多个参数传递到 Play 2.0 中的模板中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:08:51 24 4
gpt4 key购买 nike

我想像这样同时向我的模板呈现 2 个东西:

String one = "one"; 
String two = "two";
return ok(template.render(one,two));

但是 Playframework 说,这是错误的。那么怎么可能同时渲染 2 个值呢?我应该将它们保存到列表中吗?但是我必须在我的模板中再次解压它.. :(

请帮忙!感谢任何帮助!

最佳答案

Play 2.0 中的模板只是 Scala 函数,因此您需要在模板的开头(从第 1 行开始)声明参数:

@(one: String, two: String)

This is first param: @one <br/>
This is second param: @two

检查 templates docs详情

map

另一方面,如果您需要传递大量相同类型的变量,那么 Map 也是一个不错的解决方案:

public static Result index() {

Map<String, String> labels = new HashMap<String, String>();

labels.put("first", "First label");
labels.put("second", "Second label");
// etc etc
labels.put("hundredth", "Label no. 100");

return ok(template.render(labels));
}

template.scala.html

@(labels: Map[String, String])

@labels.get("first") <br/>
@labels.get("second") <br/>
.....
@labels.get("hundredth")

查看模型

最后,为了使事情更加类型安全,您可以创建自己的 View 模型,例如(示例):

package models.view;

import java.util.Date;

public class MyViewModel {

public String pageTitle = "";
public Date currentDate = new Date();
public Integer counter = 0;
// etc...

}

Controller :

public static Result myActionUsingModel() {
MyViewModel data = new MyViewModel();
data.pageTitle = "Ellou' World!";
data.counter = 123;

return ok(myViewUsingModel.render(data));
}

查看:

@(data: models.view.MyViewModel)

<h1>@data.pageTitle</h1>

<div>Now is: @data.currentDate</div>
<div>The counter value is: @data.counter</div>

关于java - 如何将多个参数传递到 Play 2.0 中的模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272984/

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