【问题标题】:File upload with other fields带其他字段的文件上传
【发布时间】:2014-05-19 06:47:40
【问题描述】:

我有一个带有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 循环应用于所有参数。谁能帮我解决这个问题。

【问题讨论】:

  • 你的 dto 类是什么类型,你能把它转换成 FileItem
  • @vikeng21 我不知道,但它是一个具有字符串类型变量的 java 文件,所有的 getter 和 setter 都在那里。
  • @vikeng21 请帮帮我

标签: java html jsp servlets file-upload


【解决方案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);
}

【讨论】:

  • k 。 . .这里的 dto 是什么。 .
  • 它是我的 dto 类的对象吗? . .
  • 是的,你想调用它的setter和getter的对象
  • 以及用于此的 jar 是什么。 .
  • 我提供了项目网站的链接,你可以从那里下载jar。或者,如果您使用 Maven,请查看 mvnrepository.com/artifact/commons-beanutils/commons-beanutils/…
猜你喜欢
  • 2015-06-04
  • 2017-08-21
  • 2020-10-22
  • 2018-12-01
  • 1970-01-01
  • 2011-07-12
  • 2016-07-16
  • 1970-01-01
相关资源
最近更新 更多