Боюсь, я потерян. Использование Play Framework 2.4.1 с Scala. В моей форме у меня есть две кнопки:
@form(routes.Orders.handle(order.id)) {
@helper.textarea(field = userForm("name"), 'disabled -> "disabled")
@helper.checkbox(field = userForm("next"), 'class -> "largerCheckbox")
<button type="submit" name="action" value="one">Edit order</button>
<button type="submit" name="action" value="two">Remove order</button>
}
Контроллер:
def handle(id: Long) = Action { implicit request =>
val userData = userForm.bindFromRequest.get
request.body.asFormUrlEncoded.get("action").headOption match {
case Some("one") => Ok("Clicked edit ")
case Some("two") => Ok("Clicked remove")
case _ => BadRequest("This action is not allowed")
}
}
userForm.bindFromRequest.get выдает исключение:
[NoSuchElementException: None.get]
Как я могу теперь различать в контроллере, какая кнопка была нажата, а также считывать данные пользователя?
ОБНОВЛЕНИЕ:
Я нашел решение. Решение, возможно, говорит слишком много, давайте назовем это ужасным обходным путем:
val result = Try {request.body.asFormUrlEncoded.get("next").headOption}
val next = result match {
case Success(value) => true
case Failure(exception) => false
}