我有一个带有 enctype="multipart/form-data"
的 Html 表单。我有一个 dto 类,它具有所有 setter 和 getter。由于我以 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
}
}
这里我的问题是如何在 for 循环中调用 getter 和 setter。我认为这里应该是单个语句,通过 for 循环应用于所有参数。谁能帮我解决这个问题。
最佳答案
您可以使用诸如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);
}
关于java - 与其他字段一起上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22905422/