ajax 异步提交 struts2 表单

Struts2 对Ajax提供了很好的支持,使用的是DOJO,如果你不会使用DOJO DWR的话,其实使用Struts2 提供的Ajax JSP tags 也是可以的,使用很简单。
使用名为Stream的Result 即可。
配置文件

Java代码
  1. <actionname="ajaxAction"class="com.yaxing.action.UnitInfoAction"
  2. method="findByUU">
  3. <resulttype="stream">
  4. <paramname="contentType">text/html</param>
  5. <paramname="inputName">inputStream</param>
  6. </result>
  7. </action>


Action:
Java代码
  1. publicStringfindByUU()throwsException{
  2. try{
  3. Mapsession=ActionContext.getContext().getSession();
  4. Stringids=session.get("userId").toString();
  5. listUnitInfo=this.unitInfoService.findByUU(java.net.URLDecoder.decode(userName,"UTF-8"),ids);
  6. if(listUnitInfo.size()>0){
  7. inputStream=newByteArrayInputStream(
  8. "true".getBytes("utf-8"));
  9. }else{
  10. inputStream=newByteArrayInputStream(
  11. "此单位帐号可以使用!".getBytes("utf-8"));
  12. }
  13. }catch(Exceptione){
  14. e.printstacktrace();
  15. returnINPUT;
  16. }
  17. returnSUCCESS;
  18. }


页面
Java代码
  1. <tr>
  2. <tdheight="15"bgcolor="#FFFFFF">
  3. <divalign="center"class="STYLE1">
  4. <divalign="center">单位名称</div>
  5. </div>
  6. </td>
  7. <tdheight="15"bgcolor="#FFFFFF">
  8. <divalign="center">
  9. <spanclass="STYLE1"><inputtype="text"id="name"
  10. name="unitInfo.name"style="width:120px"/></span>
  11. </div></td>
  12. <tdheight="15"bgcolor="#FFFFFF">
  13. <divalign="center">
  14. <spanclass="STYLE1">
  15. <divid="nameTip"style="width:120px"></div></span>
  16. </div></td>
  17. </tr>

JS:
Java代码
  1. <scriptlanguage="javascript">
  2. varmyRequest;
  3. varflag;
  4. functiont1(){
  5. //准备向后台传输的数据
  6. varuserName=document.getElementById("userName1").value;
  7. alert(userName);
  8. url=encodeURI(userName);
  9. url=encodeURI(url);
  10. //Ajax
  11. myRequest=newActiveXObject("Msxml2.XMLHTTP");
  12. myRequest.onreadystatechange=t2;
  13. myRequest.open("GET","unitInfo/ajaxAction.action?userName="+url,true);
  14. myRequest.send(null);
  15. }
  16. functiont2(){
  17. if(myRequest.readyState==4){
  18. varret=myRequest.responseText;
  19. //后续处理
  20. if(ret=="true"){
  21. flag=false;
  22. document.getElementById("userName1Tip").innerHTML="单位帐号重复,无法使用";
  23. }else{
  24. flag=true;
  25. document.getElementById("userName1Tip").innerHTML="此单位帐号可以使用";
  26. }
  27. }
  28. }
  29. functioncheckForm(){
  30. returnflag;
  31. }
  32. </script>

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...