不使用ajax实现无刷新提交表单的例子
<s:form action="upload!upload.action" namespace="/" theme="simple" method="post" id="hidden_frame" enctype="multipart/form-data" target="hidden_frame"> <div class="file-Box" style="margin-left: 30px"> <span style="white-space:pre"> </span><input type='text' name='textfield' id='textfield' class='txt'/> <span style="white-space:pre"> </span><input type='button' class='btn' value='选择文件' /> <span style="white-space:pre"> </span><s:file name="upload" id="uuppload" cssClass="file" onchange="document.getElementById('textfield').value=this.value"/> <span style="white-space:pre"> </span><a value="上传参数 " onclick="uploadcanshu();" style="width: 100px;margin-left:30px;" class="btn">上传参数</a> </div> </s:form> <iframe name='hidden_frame' id="hidden_form" style="display:none"></iframe> <script type="text/javascript"> function uploadcanshu(){ var uploads = $("#uuppload").val(); if(uploads!=null&&uploads!=""){ $("#hidden_frame").submit(); $("#hidden_form").one("load",function () { <span style="white-space:pre"> </span>var ahtml=$("#hidden_form").contents().find("body")[0].outerHTML; <span style="white-space:pre"> </span>var data=$("#hidden_form").contents().find("body").html(); <span style="white-space:pre"> </span>var bb=$("#hidden_form").contents().find("body").find("pre").html(); <span style="white-space:pre"> </span>$("#jishucanshu").val(data); }); }else{ <span style="white-space:pre"> </span>alert("上传失败,请重新上传!"); } } </script>
action类里的代码:
(public class UploadAction extends ActionSupport)
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8"); ServletActionContext.getResponse().setCharacterEncoding("UTF-8"); ServletActionContext.getResponse().setHeader("Cache-Control","no-cache");
ServletActionContext.getResponse().setHeader("Charset","UTF-8");
ServletActionContext.getResponse().getWriter().write("<BODY>"+strupload+"</BODY>");