2014-02-04 3 views
2

Поскольку формы HTML могут иметь разные формы, я хотел бы понять, как создавать индивидуально разработанные формы без создания входных помощников для каждого случая. Все примеры, которые я мог найти, касаются помощников формы.Как получить сообщение об ошибке полной проверки формы без помощника формы в Play Framework 2?

В мой контроллер у меня есть что-то вроде этого:

formWithErrors => BadRequest(views.html.formsamples.getform1(formWithErrors)) 

Мое мнение:

<div class="[email protected]{if(form.error("age")) " has-error"}"> 
    <label for="exampleInputAge1" class="control-label">Age</label> 
    <input type="text" class="form-control" name="age" id="exampleInputAge1" placeholder="Enter age"> 
    @if(form.error("age")) { 
     <span class="help-block">(1) @form.error("age")</span> 
     <span class="help-block">(2) @form.error("age").get.message</span> 
     <span class="help-block">(3) @Messages(form.error("age").get.message, form.error("age").get.args)</span> 
    } 
</div> 
@helper.inputText(form("age")) 

Выход ошибки выглядит следующим образом:

(1) FormError(age,error.max,WrappedArray(100)) 
(2) error.max 
(3) Must be less or equal to WrappedArray(100) 

Количество (3) как можно ближе, но это все еще не правильное сообщение об ошибке, потому что, как я понимаю, @Messages принимает сепарат e, необходимых для перевода, тогда как form.error("age").get.args предоставляет аргументы как WrappedArray.

Когда я использую помощник ввода Play Framework по умолчанию, (первое) сообщение об ошибке: Must be less or equal to 100

Как я могу получить на это сообщение, включая все аргументы, необходимые для перевода полного сообщения об ошибке?

(The full view file можно найти на GitHub.)

ответ

2

Чтобы использовать массив (или аналогичный сбор), вы можете использовать следующее:

def method(args:String *):Unit 

method("one", "two") 

method(Seq("one", "two"): _*) 

Это строка в исходном коде play framework: Helpers.scala#27

+0

Так что мне просто пришлось изменить 'form.error (« age »). get.args' to' form.error («age»). get.args: _ * 'и он сработал. Ура! – Nick

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