Да, вы должны использовать AjaxFormSubmitBehavior
с сообщением change
для ввода файла.
Как я могу видеть, вы используете MultiFileUploadField
, так что просто добавьте:
fileInput.add (new AjaxFormSubmitBehavior(form/*optional*/, 'change')
{
@Override
protected void onSubmit (AjaxRequestTarget target)
{
super.onSubmit (target);
}
/* you can also override other methods here,
but note that Form's submit method will
be called too.*/
});
Где fileInput
это поле загрузки файла, и form
есть форма, где хранится ваше поле. Если событие отправки отсутствует, проверьте метод onError
, если ваша форма имеет некоторые подтверждения.
Обратите внимание, что это поведение будет вызываться каждый раз, когда вы выбираете файл из системного файла. MultiFileUploadField
не позволяет одновременно выбирать несколько файлов. Добавляет только один за другим.
Чтобы выбрать несколько файлов одновременно вы можете использовать FileUploadField
и HTML5 тег multiple
, поэтому в разметке будет следующим:
<input wicket:id="fileInput" type="file" multiple="multiple"/>
Он будет работать только с HTML5, а для другой версии она будет позволяет загружать только один файл, но метод отправки, описанный выше, будет работать и для этого.
UPDATE
На самом деле я уже описывают большую часть этого для вас here. Вы должны как-то отреагировать, приняв ответ или объяснив, почему это не решает вашу проблему.
Привет, спасибо за ваше время и ответ. На самом деле, у меня есть эта загрузка с несколькими калитками, но я не хочу отдельной кнопки отправки для этого. Когда пользователь нажимает кнопку загрузки, он должен быть автоматически отправлен при выборе файлов. Но я все еще запутался в использовании кода выше в моем java-коде. – sam
@ user2840965, да, я это понял и предложил вам использовать 'AjaxFormSubmitBehavior'. Вам нужно только добавить его в поле загрузки файла и удалить кнопку отправки из разметки. «Форма» будет отправлена после того, как пользователь выберет файл. –
Спасибо, Майкл, я постараюсь сделать это. – sam