ユーザーが基本的な情報をテキスト フィールドに入力する必要があるマルチパート投稿フォームがあります。ユーザーは、ビデオ ファイルをアップロードするか、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() を作成するにはどうすればよいですか?