0

ユーザーが基本的な情報をテキスト フィールドに入力する必要があるマルチパート投稿フォームがあります。ユーザーは、ビデオ ファイルをアップロードするか、YouTube リンクを入力するかを選択できます。

アップロード部分が機能するようになりました。ServletFileUpload を使用してファイルをサーバーに保存し、それを S3 にアップロードしています。多くのループを経ずにフォームのテキストフィールドから値を取得する方法に問題があり、フィールド名をチェックして値オブジェクトのフィールドと一致させようとしています。

例:

エンティティファイルがあるとします:

public class Video {
 private String name;
 private String url;
 private String description;
 private Video() {}

 public Video(String, String, String) {
  this.field = value; ...
 }
}

そして、フォームは次のようなものです:

<form method="POST" action="/member/uploadVideo" enctype="multipart/form-data">
<input name="name" type='text'/>
<input name="file" type='file'/>
<input name="url" type='text'/>
<input name="description" type='text'/>
</form>

バックエンドでは、次のようなことをしています。

 for (Object item : items) {
        fileItem = (FileItem) item;
        if (fileItem.isFormField()) {
            logger.info(fileItem.getName() +  " : " + fileItem.getString());
        } else if (!fileItem.isFormField() && (fileItem.getName() != null && !fileItem.getName().isEmpty())) {
            uploadedFile = fileItem;
        }
    }

フィールド名が Video() のフィールドと一致しているかどうかをループして ifs を実行せずに、テキストフィールドの値を簡単に取得して新しい Video() を作成するにはどうすればよいですか?

4

1 に答える 1