2017-01-13 2 views
3

Я пытаюсь загрузить несколько файлов и привязать их к массиву java в рамке. Я прочитал документацию here и this question на SO. Однако у меня все еще есть проблемы. Во время работы в отладке, если я загружаю несколько файлов, я замечаю, что к массиву привязан только последний файл. Что я делаю неправильно?Загрузка нескольких файлов с помощью полос

<stripes:form> 
<c:forEach varStatus="loop" begin="0" end="3"> 
<stripes:file name="attachments[${loop.index}]"/> 
</c:forEach> 
<stripes:submit name="submit" /> 
</stripes:form> 

private List<FileBean> attachments = new ArrayList<FileBean>(); 
public void setAttachments(List<FileBean> attachments) throws IOException { 
    logger.info("*********************Attachments " + attachments.size()); 
    this.attachments = attachments; 
    //documentation says to call FileBean.save or read them as a stream 

} 

ответ

1

Вы можете оставить сеттер. Переменная attachments уже инициализирована оператором new.

private List<FileBean> attachments = new ArrayList<FileBean>(); 

public List<FileBean> getAttachments() { 
    return this.attachments; 
} 

public Resolution submit() { 
    System.out.println("********************* Attachments " + attachments.size()); 
    return show(); 
} 

@DefaultHandler 
public Resolution show() { 
    return new ForwardResolution("[path to jsp]"); 
} 

Нажатие «Отправить» на форме требует разрешения «представить», где вы можете осмотреть густонаселенные вложения, сохранить их, и - в этом примере - возвращение в форму еще раз. Или вы можете показать посетителям другую страницу.

+0

Я пробовал это, но когда я загружаю два файла другими словами, управляйте щелчком по двум файлам в диалоговом окне файла. Массив содержит только один элемент в режиме отладки. Мне нужно иметь возможность заполнить массив вложений с помощью n вложений. – Hardrock302

+0

Вы имеете в виду ''? Я бы не сказал, что это невозможно в Stripes, но это, вероятно, непросто. В прошлом году обсуждается список рассылки https://sourceforge.net/p/stripes/mailman/message/34787765/ Возможно, попробуйте сценарий ajax (jQuery), как это предлагается. – acdhirr

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