【问题标题】:Inputs in Play! for date and time?Play 中的输入!日期和时间?
【发布时间】:2012-12-18 07:55:35
【问题描述】:

我的表单中需要有 2 个输入,一个用于日期,一个用于时间。在我的模型中,它只是 java.util.Date 类型的一个属性。使用 Play 框架 2 处理生成 html 并将输入字段绑定到模型中的日期属性的最佳做法是什么?

注意,如果我使用字段构造函数,我无法按照我需要的方式布置表单。我想要第一行的标签,第二行的 2 个输入,第三行的验证错误。我应该只使用原始html吗?如果这样做,我是否仍然可以访问验证错误和约束?

【问题讨论】:

  • 我为该任务使用了两个单独的字段(原始 HTML)和一些 jQuery 插件(日期+时间选择器),然后通过在保存之前加入值来创建有效日期,无论如何,我很好奇关于其他人的意见,您还可以找到单个 jQuery 日期时间选择器插件,对于我的上一个任务单独的字段更合适。
  • 也许this 有帮助
  • biesior,你能用模型中的值初始化日期输入吗?您是否能够显示验证错误?如果您使用字段构造函数,这些东西会自动处理,所以我想知道如何在没有字段构造函数的情况下处理它。

标签: java view playframework playframework-2.0 field


【解决方案1】:

如果您在模型中使用两个单独的字段,绑定肯定会更容易。一个想法是创建一个绑定到表单提交的中间类。

// Controller

public static class FormSubmission {
  public Date date;
  public Date time;
}

public static Result submitForm() {
  Form<FormSubmission> filledForm = form(FormSubmission.class).bindFromRequest();
  if (filledForm.hasErrors()) {
    return badRequest();
  } else {
    ModelClass model = new ModelClass(); // fetch first if you update
    // Copy all values from form submission to the model
    model.dateAndTime = combineDateAndTime(filledForm.get().date, filledForm.get().time);
  }
  return ok();
}

// View
@(form: Form[FormSubmission])
...

(我知道这无济于事,但这样的任务在 Scala 中是极其微不足道的。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多