Я немного новичок в Play Framework, но я не вижу никакой документации о том, как подойти к этому.В основном у меня есть форма для загрузки текстового файла на сервер, вот соответствующий фрагмент:
#{form @Sprockets.upload() , enctype:'multipart/form-data' }
<input type="file" name="sprocketFile" size="chars" />
<input type="submit" value="Submit Sprocket" />
#{/form}
На стороне контроллера, вот метод загрузки:
public static void upload(File sprocketFile) {
}
Мойпроблема заключается в том, что если пользователь не утруждает себя заполнением формы и просто нажимает «Отправить звездочку», Play автоматически генерирует NPE при попытке преобразовать данные формы в файл.Как я могу обойти это?Это происходит даже до того, как код проверки контроллера вступает в силу, поэтому простое добавление @Required не поможет:
@64m30kf1p
Internal Server Error (500) for request POST /sprockets/upload
Oops: NullPointerException
An unexpected error occured caused by exception NullPointerException: null
play.exceptions.UnexpectedException: Errors serializationProblem
at play.data.validation.ValidationPlugin.save(ValidationPlugin.java:146)
at play.data.validation.ValidationPlugin.onActionInvocationResult(ValidationPlugin.java:65)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:293)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.NullPointerException
at play.data.validation.ValidationPlugin.save(ValidationPlugin.java:136)
... 3 more
Моя конечная цель - показать пользователю красивое сообщение об ошибке, но Playмешает мне сделать это.Это с Play 1.1 на OS X, если это имеет значение.