文件上传与其他字段

时间:2014-04-07 06:53:26

标签: java html jsp servlets file-upload

我有一个enctype="multipart/form-data"的Html表单。我有一个dto课,它有所有的设定者和吸气剂。由于我提交的表单为multipartgetParameter()方法无效,因此在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循环应用于所有参数。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

您可以使用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);
}