CenturyMagus的专栏

www.err123.cn ,收集各类编程错误的解决方案,欢迎大家访问

用户操作
[即时聊天] [发私信] [加为好友]
magusID:CenturyMagus
62786次访问,排名1686好友2人,关注者3
CenturyMagus的文章
原创 42 篇
翻译 1 篇
转载 40 篇
评论 23 篇
CenturyMagus的公告

ah011一起在友播听歌吧!
最近评论
zhengyuanting:通过URL传中文,如果不是post的话,是会乱码的
qq386232894:好文章!!!!
fz04003:谢谢啊,我终于搞懂这个东西了。
虽然我用的是JQuery,但是终于搞懂Struts这块是怎么回事了,谢谢!
小脚:终于全部搞懂了!!!谢谢老大~
小小鸟:好文章.比其他好多地方都讲的清楚透彻.赞一个.
文章分类
收藏
    相册
    编程网站
    Apache
    IBM DeveloperWorks
    onjava
    W3C
    编程错误解决方案收集
    计算机词汇在线词典
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 基于Struts的AJAX 收藏

    新一篇: getHibernateTemplate().save() 未保存到数据库问题之解决 | 旧一篇: Jsp 验证码(检验码)的实现

    首先,我们仍然是对Struts应用来做配置,仍然是在struts-config,xml文件里做配置,如下:

     <action type="com.ajax.CheckAction"
         scope="request" path="/ajax/check">
         <forward name="success" path="/check.jsp"/>
     </action>


    跟普通的Struts应用的配置一样,只是没有ActionForm的配置。下面是Action类:

     package com.ajax;
     
     import java.io.PrintWriter;
     
     import javax.servlet.http.HttpServletRequest;
     import javax.servlet.http.HttpServletResponse;
     
     import org.apache.struts.action.Action;
     import org.apache.struts.action.ActionForm;
     import org.apache.struts.action.ActionForward;
     import org.apache.struts.action.ActionMapping;
     import org.apache.struts.action.DynaActionForm;
     
     /**
      * @author Administrator
      *
      * TODO To change the template for this generated type comment go to
      * Window - Preferences - Java - Code Style - Code Templates
      */
     public class CheckAction extends Action
     {
      public final ActionForward execute(ActionMapping mapping, ActionForm form,
               HttpServletRequest request,
               HttpServletResponse response)
       throws Exception
       {
      System.out.println("haha...............................");
      String username= request.getParameter("username");
      System.out.println(username);
      String retn;
      if("educhina".equals(username)) retn = "Can't use the same name with the old use,pls select a difference...";
      else retn = "congraducation!you can use this name....";
      PrintWriter out=response.getWriter();
               out.write(retn);
               out.close();
      return mapping.findForward("success");
       }
      public static void main(String[] args)
      {
      }
     }

    我们可以看到里面的逻辑跟上例中Servlet里的逻辑一样。最后,我们来看看JSP:

     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     <html>
     <head>
     <title>Check.html</title>
     
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="this is my page">
     
     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
     
     </head>
     <script type="text/javascript">
      var http_request = false;
      function send_request(url) {//初始化、指定处理函数、发送请求的函数
       http_request = false;
      
    file://开始初始化XMLHttpRequest对象
       if(window.XMLHttpRequest) {
    file://Mozilla 浏览器
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {//设置MiME类别
       http_request.overrideMimeType('text/xml');
      }
       }
       else if (window.ActiveXObject) { // IE浏览器
      try {
       http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
       try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {}
      }
       }
       if (!http_request) { // 异常,创建对象实例失败
      window.alert("不能创建XMLHttpRequest对象实例.");
      return false;
       }
       http_request.onreadystatechange = processRequest;
       // 确定发送请求的方式和URL以及是否同步执行下段代码
       http_request.open("GET", url, true);
       http_request.send(null);
      }
      // 处理返回信息的函数
       function processRequest() {
           if (http_request.readyState == 4) { // 判断对象状态
               if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
                   alert(http_request.responseText);
               } else {
    file://页面不正常
                   alert("您所请求的页面有异常。");
               }
           }
       }
      function userCheck() {
       var f = document.forms[0];
       var username = f.username.value;
       if(username=="") {
      window.alert("The user name can not be null!");
      f.username.focus();
      return false;
       }
       else {
      send_request('ajax/check.do?username='+username);
       }
      }
     
     </script>
     <body>
      <form name="form1" action="" method="post">
     User Name:<input type="text" name="username" value="">&nbsp;
     <input type="button" name="check" value="check" onClick="userCheck()">
     <input type="submit" name="submit" value="/oblog312/submit">
     </form>
     </body>
     </html>

    我们可以看到,JSP基本是一样的,除了要发送的url:ajax/check.do?username="+username。 




    发表于 @ 2006年08月18日 15:21:00|评论(loading...)|编辑

    新一篇: getHibernateTemplate().save() 未保存到数据库问题之解决 | 旧一篇: Jsp 验证码(检验码)的实现

    评论

    #fz04003 发表于2008-04-24 14:05:28  IP: 58.246.121.*
    谢谢啊,我终于搞懂这个东西了。
    虽然我用的是JQuery,但是终于搞懂Struts这块是怎么回事了,谢谢!
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © CenturyMagus