只要將form的enctype設(shè)置為multipart/form-data即可
2.ajax form提交
這個時候如果不上傳文件,然后再去提交表單,就會報argument mismatch,這是因為在struts用PropertyUtilsBean對頁面組件中的數(shù)據(jù)進行form封裝的時候出現(xiàn)了類型轉(zhuǎn)換問題,無法將<html:file/>中的空值轉(zhuǎn)換成FormFile類型。
解決方法是提交表單的方法中將<html:file/>的name屬性換掉,以此避免strut form的轉(zhuǎn)換錯誤。
示例:
1 if($("#picFile").val()==""){
2 $("#picFile").attr("name","nullFile");
3 }
4 var url = "<c:url value='/user/user/personal.ao?method=modifyBasic'/>";
5 //$("#userForm").submit();
6 //$.formSubmit("userForm",url);
7 $.ajaxFormSubmit("userForm",url,{callback:function(data){
8 //解析json對象
9 var json = eval("("+data+")");
10 if(json.status=="success"){
11 detailShow();
12 loadBasic();
13 $("#divDialog").html("修改個人基本信息成功!<br><input type='button' value='確定' onclick=\"$('#divDialog').close()\">");
14 $("#divDialog").dialog({title:"消息窗口"});
15 }
16 }});
2 $("#picFile").attr("name","nullFile");
3 }
4 var url = "<c:url value='/user/user/personal.ao?method=modifyBasic'/>";
5 //$("#userForm").submit();
6 //$.formSubmit("userForm",url);
7 $.ajaxFormSubmit("userForm",url,{callback:function(data){
8 //解析json對象
9 var json = eval("("+data+")");
10 if(json.status=="success"){
11 detailShow();
12 loadBasic();
13 $("#divDialog").html("修改個人基本信息成功!<br><input type='button' value='確定' onclick=\"$('#divDialog').close()\">");
14 $("#divDialog").dialog({title:"消息窗口"});
15 }
16 }});