Я пытаюсь поймать ошибки проверки при отправке запроса POST через HTML-форму. У меня есть следующий код в моем Application.java
классе:Play framework не распознает ошибки?
public class Application extends Controller
{
..
public static Result addSubscriber()
{
Form<Subscriber> subscriberForm = Form.form(Subscriber.class);
subscriberForm.bindFromRequest();
Logger.warn(subscriberForm.toString());
if (!(subscriberForm.hasErrors() || subscriberForm.hasGlobalErrors()))
{
Logger.error("dammit");
}
else // never reaches here
...
}
}
И в моем Subscriber.java
классе:
@Entity
public class Subscriber extends Model
{
@Id
public String email;
@CreatedTimestamp
Timestamp createdAt;
...
public List<ValidationError> validate()
{
List<ValidationError> errors = new ArrayList<ValidationError>();
Pattern p = Pattern.compile("^[a-zA-Z0-9_.+-][email protected][a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$");
Matcher m = p.matcher(email);
if (!m.find())
{
Logger.error("\"" + email + "\" appears to be an invalid email.");
errors.add(new ValidationError("email", "\"" + email + "\" appears to be an invalid email."));
}
if (Subscriber.exists(email))
{
Logger.error("\"" + email + "\" is already subscribed!");
errors.add(new ValidationError("subscribed", "\"" + email + "\" is already subscribed!"));
}
Logger.warn("whoa!!!!!! " + errors.toString());
//return errors.isEmpty() ? null : errors;
return errors;
}
}
В результате, когда я пытаюсь ввода недопустимого эл.адрес:
[error] application - "[email protected]" appears to be an invalid email.
[warn] application - whoa!!!!!! [ValidationError(email,"[email protected]" appears to be an invalid email.,[])]
[warn] application - Form(of=class models.Subscriber, data={}, value=None, errors={})
[error] application - dammit
Почему является список ошибок пуст ?! Насколько я могу судить I am following directions. Кажется, я не могу спровоцировать ошибки.
Я использую Play 2.2.2 так this appears to be the relevant source code file. Я не сразу вижу, что я делаю неправильно.
Наконец-то! Спасибо :) – wrongusername