java - 显示 Controller 中的日期对象/值以在 Play Framework/Scala 中查看

标签 java playframework

我有一个来自模型的日期,该日期由 Controller 检索并显示在 View 中。但是,日期不会在 View 的字段中显示为值。

这是 View :

@(intakeForm: Form[Application.IntakeAdd], lookups: java.util.List[Lookup], users: java.util.List[User], intake: Intake)

@main(null) {
...
<div class="element-date">
  <label class="title"><span class="required">*</span>Date Requested:</label>
    <div class="item-cont">
    <input class="large" data-format="yyyy-mm-dd" type="date" name="daterequested" required="required" placeholder="Date" value="@intake.daterequested" />
    <span class="icon-place"></span>
    </div>
</div>

...
}

我的字段值为:

value="@intake.daterequested"

但它不显示任何值 - 所有其他值都有效,只是日期不显示。

该值作为 Java Date() 对象存储在模型中:

@Constraints.Required
@Formats.DateTime(pattern = "yyyy-MM-dd")
public Date daterequested;

我猜我可以在 View 中使用一些翻译来纠正这个问题?

非常感谢您的帮助!

最佳答案

通过直接在 HTML 中显示日期来检查日期的呈现形式,例如<span>@intake.daterequested</span>

我怀疑其格式为 dow mon dd hh:mm:ss zzz yyyy (参见 the javadoc for Date#toString )与 yyyy-mm-dd 所需的格式不匹配.

您可以使用 SimpleDateFormat在模板中根据需要格式化日期,或者为 Intake 创建 DTO已包含所需格式的日期。如果您选择前者,请将代码更改为以下内容:

value="@(new SimpleDateFormat("yyyy-MM-dd").format(intake.daterequested))"

您还可以为模板定义可重复使用的日期格式。如果您必须格式化多个日期,则无需为每个日期创建一个格式化程序。

例如...

Controller

package controllers;

import java.util.Date;
import play.mvc.*;

import views.html.*;

public class HomeController extends Controller {
    public Result index() {
        return ok(index.render(new Date()));
    }
}

模板 这演示了如何使用内联格式和可重用格式。

@import java.text.SimpleDateFormat
@(date: java.util.Date)

<html>
    @defining(new SimpleDateFormat("yyyy-MM-dd")) { dateFormatter =>
        <body>
            <div>
                <b>Raw: </b>@date
            </div>
            <div>
                <b>In-line formatter: </b>@(new SimpleDateFormat("yyyy-MM-dd").format(date))
            </div>
            <div>
                <b>Shared formatter: </b>@dateFormatter.format(date)
            </div>
        </body>
    }
</html>

输出

Raw: Wed Dec 14 09:36:15 CET 2016

In-line formatter: 2016-12-14

Shared formatter: 2016-12-14

关于java - 显示 Controller 中的日期对象/值以在 Play Framework/Scala 中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002271/

相关文章:

java - 检查关键字是否在字符串中

java - Hibernate语法错误: Expected DOT

scala - 如何使用 Play 和 sbt 在 CI 中使用单独的配置文件进行测试?

scala - Play Framework 2.2 Action 组合返回自定义对象

scala - 具有外部数据库和 RESTful Web gui 和服务的系统的正确设计是什么?

java - 了解泛型以及类型检查的工作原理

java - Tika Parser 作为 gradle jar 中的运行时依赖项

java - 使用 FileInputStream 启动连接后删除文件

java - 即使在 Android 中锁定设备旋转后,屏幕也会旋转

java - 提交时获取请求参数数据