У меня есть Html-форма с enctype="multipart/form-data"
. У меня есть класс dto
которого есть все сеттер и геттеры. Поскольку я передаю форму как multipart
, getParameter()
не будет работать, поэтому в servlet
я использовал List, как показано ниже,
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select, etc).
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
// ... (do your job here)
//getters and setters
} else {
// Process form file field (input type="file").
String fieldname = item.getFieldName();
String filename = FilenameUtils.getName(item.getName());
InputStream filecontent = item.getInputStream();
// ... File uploading code
}
}
Здесь моя проблема заключается в том, как я могу вызвать getters и seters in for loop. Я думаю, что здесь должен быть один оператор, который будет применяться ко всем параметрам через цикл. Может ли кто-нибудь помочь мне в этом.
Вы можете использовать такую библиотеку, как Apache Commons BeanUtils, например:
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select, etc).
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
BeanUtils.setProperty(dto, fieldname, fieldvalue);
}