2014-01-06 3 views
0

У меня есть Date expirationDate Поле в моем классе. У меня также есть меню выбора выпадающий в моей форме с день/месяц/годКак читать дату из формы в игровом каркасе

<select class="form-control" value="@form("day")" > 
      <option>dd</option> 
      @for(a <- 1 to 31) { 
      <option>@a</option> 
      } 
</select> 
<select class="form-control" value="@form("month")" > 
      <option>mm</option> 
      @for(a <- 1 to 12) { 
      <option>@a</option> 
      } 
</select> 
<select class="form-control" value="@form("year")" > 
      <option>yyyy</option> 
      @for(a <- 2014 to 2100) { 
      <option>@a</option> 
      } 
</select> 

Как я могу связать эти данные java.util.Date типа в контроллере? Более конкретно

public static Result createScenarioPOST() throws ParseException { 
    User user=User.find 
      .where().eq("email", session("email")).findUnique(); 

    Form<Creation> createForm = Form.form(Creation.class) 
      .bindFromRequest(); 
    if (createForm.hasErrors()) { 
     return badRequest(createScenario.render(createForm, user)); 
    } else { 
     return redirect(routes.Application.index()); 
    } 
} 
+0

Нельзя использовать только один вход, например https://github.com/eternicode/bootstrap-datepicker? – bandit

ответ

0

Сложность здесь связана с наличием отдельных полей ввода для полей день/месяц/год. Так как Play's Form s отображает отдельные значения, вы не можете использовать их для сопоставления с одним значением.

Используйте Form, чтобы сопоставить (и подтвердить!) Отдельные значения, а затем построить Date так, как вы обычно создавали бы Date.

Более простой способ сделать это - указать дату как единое значение формы, например, используя поле ввода <input type="date">. Если у вас действительно должны быть отдельные поля и вы хотите привязать их к одному полю, вы можете использовать JavaScript для объединения отдельных полей в одно значение в форме submit.

+0

Также подумайте, используя Joda Time, это намного лучше, чем встроенный материал Java, и Play поддерживает его. – Sietse

Смежные вопросы