Struts2.1.6でのファイルアップロード
画像UploadをModelDrivenで受け取る必要があったので。
●JSP
色々割愛。
<s:form action="#" method="post" enctype="multipart/form-data"> <s:file name="itemImg" id="button3" label="File" /> </s:form>
●Action
public class ImageUploadAction implements ModelDriven<ImageUploadModel> { private static final long serialVersionUID = 1L; private ImageUploadModel model = new ImageUploadModel(); public String execute() throws Exception { //TODO なんか処理。 return SUCCESS; } @Override public SupplierItemInfoImageModifyModel getModel() { return model; } }
●Model
public class ImageUploadModel implements Serializable { private File itemImg; private String itemImgContentType; //←使わなかったら無くてもOK private String itemImgFileName; //←使わなかったら無くてもOK private String fileCaption; //←使わなかったら無くてもOK … と、↑これらのアクセサ。 … }
わかった事は
・formタグにenctype="multipart/form-data"付ける。
・fileタグにlabel="File"付ける。
・fileタグのname属性とFileの実態の名前を合わせる。
・ContentTypeとFileNameはfileタグのname属性で指定した文字列頭につけてあげる。
・もちろんModelDrivenでも使える。
・受け取るFile以外必要なければアクセサなくても大丈夫。
・fileCaptionって何だ?今回何やっても取れなかった。
参考サイト
http://www.roseindia.net/struts/struts2/struts-2-file-upload.shtml