请教高手:
如何在struts1中使用ajax,他们一起工作时,是怎样的代码流程?
或者说程序的工作流程是怎样的?请高手指教!当然,如果能给一些代码示例更好。

解决方案 »

  1.   

    struts1和ajax是截然不同的两个东西~
    ajax说白了就是javascript只是客户端的脚步,但其用处和作用是很大的。
    最重要的一点就是异步请求了,
    实际就是异步向服务器请求数据,发一个url给后台。
    而struts是接受url并进行处理。就算没有ajax也是一样,只要有客户端向服务器端请求就可以通过struts处理。当然这只是通俗点的说法。
    话说你会用struts1不?如果会的话。
    那么你看看异步请求所利用的XMLHttpRequest这东西。具体怎么用我就不贴出来了。自己百度。呵呵,一堆呢。自我感觉javascript最重点的也是这东西了。
      

  2.   

    我对struts1的理解不深,仅仅能使用。
    我的理解是:struts1仅仅是将browser端的form进行封转,传输到服务器端。这种数据的传输方式,使用ajax不是更方便吗?
    所以我的理解是,有了ajax,struts1还有必要使用吗?不知道我的理解是否正确,请高手指教一下吧?如果有ajax和struts1联合使用的示例代码给我参考一下,更是感谢啊!
      

  3.   

    ajax 直接访问strus1 的action的 .do请求   XmlHttpRequest.open("POST","../experience.do",true);//第一个参数是请求类型(GET/POST) 第
      

  4.   

    2楼高手:
    我完全会使用ajax,使用ajax的时候,需要在browser端编写代码,如,create、open、send等,而响应的服务器端则是使用servlet,并且配置好web.xml就行了。这些我完全会使用。但是,struts1我也会使用,但是理解不深刻。我就是想不明白,怎样将ajax和struts1联合使用?
      

  5.   

    客户端的ajax代码:
    unction send_username()
    {
    createXMLHttpRequest();
    var submiturl = "hello.do";
    XMLHttpReq.open("post",submiturl,true);
    XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    XMLHttpReq.onreadystatechange=proce; 
    XMLHttpReq.send("name_1="+"goodmorning"+"&name_2="+"goodafternoon");  
    }struts1标签代码
    <html:form action="/hello">
    <table>
    <tr><td>name</td><td><html:text property="name"/><html:errors property="name"/></td></tr>
    <tr><td>password</td><td><html:text property="passwd"/></td></tr>
    <tr><td>qq</td><td><html:text property="qq"/></td></tr>
    </table>
    <html:button property="button" value="普通按钮" onclick="send_username();"/>
    <html:submit/><html:cancel/>
    </html:form>server端代码:
    HelloForm helloForm = (HelloForm) form;
    String name_temp = helloForm.getName();
    String passwd_temp = helloForm.getPasswd();
    String qq_temp = helloForm.getQq();
    String name_111 = request.getParameter("name_1");
    String name_222 = request.getParameter("name_2");在客户端使用了两个按钮:html:button和html:submit使用html:button按钮,调用js的ajax函数。在服务器端能够读到name_1和name_2,而并没有读到form中的内容,也就是form对象是null的。请教高手,如何才能在服务器端,既读到ajax的send函数中的参数,也能读到html:submit里面的数据?
      

  6.   

    不是的 就是用 html:button,你在action中处理之后要通过 out.print(“打印出来”);
    这样的 话  XmlHttpRequest 设置的监听函数就能直接在js中拿到你打印出来的数据,然后通过js显示出来或者通过js给html标签赋值
      

  7.   

    你使用了ajax 就别想struts1了  和它没有多大的关系
      

  8.   

    感谢高手dyllove98!我还想请教一下:在使用struts1的时候,struts1会将form的数据封装传输到后台,那么,后台除了使用forward做页面的跳转之外,后台如何将数据传送到前台呢?
      

  9.   

    Struts 和 AJAX是两个不同概念以及,而且作用范围也不同。Struts是WEBserver端的技术,用于处理来自客户端的请求。AJAX是客户端的技术,可以异步向服务端发送请求,就收服务端返回的数据然后进行相关的处理。
    简单的说,STRUTS可以接受AJAX或者浏览器的请求,而AJAX也未必一定要请求时JAVA的web容器。
      

  10.   

    11楼的高手,你的说的这些,我都明白。我很清楚ajax是将浏览器端的用户请求发送到服务器。
    struts1也可以对浏览器端的请求进行处理。我现在要问的,或者说我不明白的是:是用struts1的时候,启不是不能使用ajax了?struts1如果针对浏览器端的请求,返回不同的结果给浏览器端?
      

  11.   

    我感觉你应该去了解下MVC的概念,struts是进行MVC的控制器,进行请求处理转发等,ajax是页面异步处理技术,不同的使用领域
      

  12.   

    数据通过form其实还是通过request传递的
    你可以直接把数据防止到request或者session中进行传递