我对ajax和struts的理解:
ajax:
1) 向上,可以向服务器发送所有的数据。
2) 向下,服务器可以通过response向browser下发所有的数据,在browser收到数据后,可以通过DOM编程,将数据实时显示。struts1:
1) 使用标签,将html:form中的数据进行封装,发送到服务器;
2) 服务器使用mapping、forward等对象,进行跳转,并且将数据封装到request或者是response中,下发到跳转的页面。我的问题:
1) struts1做的工作,ajax完全能够胜任,而且,ajax能够更好的完成struts1做的工作。甚至,struts1的很多标签中使用的变量,完全就是jsp的方法(EL表达式,或者是<%=   %>),这样,使用struts1代码显得很乱,从这个角度上来说,ajax也比struts1更好。
2) 如果ajax与struts1结合使用,我试过了,可以通过指定ajax的url,从而访问struts1的action,但是这种做法的前提是,要使用struts1的标签,否则,form中的数据不会被封装并传递到action。那么我的问题是,ajax与struts1如何结合,有好的办法吗?请高手们指教!

解决方案 »

  1.   

    楼主,提个建议
    jquery比ajax要好用,现在企业都基本不使用ajax (做页面效果 简单的服务器异步交互)
    strust2比struts1要好,这个毋庸置疑 (优秀的MVC框架)还有上述两者的作用完全不同,不可比较
      

  2.   

    一般来说,在实际项目中都是用ajax的一些框架,比如dwr,而且ajax和struts的作用完全不同。根本就没有可比性
      

  3.   

    指出几个误区
    1.即使不用struts标签,仍然可以将参数传入actionForm
    2.struts是建立在Servlet的基础上,最大的作用是Request请求的分发。而不是他的标签。
    3.ajax是无刷新提交的一整套前台+后台的解决方案,而不是XMLHttpRequest。而struts则只是后台的分发方案。例如你们经常听到的mvc。用途不同,所以无法比较
      

  4.   

    不要误导楼主,AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。jquery是一种客户端javascript框架,他本身提供了对ajax的封装。
      

  5.   


    介绍你看下 AJAX 和 STRUTS2的视频 尚学堂的就行,看完你就明白了。http://bt.itcast.cn/
      

  6.   

    AJAX是一种客户端技术,而不管jquery也好,ext也好,都实现了异步交互,都是对XMLHttpRequest对象的一种封装,而struts是Web层框架,它的职责是处理请求,是属于服务方的,所以说它们不能比较,一个是属于客户端的,一个是属于服务器的,struts是替换servlet的,AJAX是替换传统请求方式的
      

  7.   

    问:
    有了struts1,还需要servlet吗?
    有了ajax,还需要javascript吗?lz要解决这类问题,不是做出个什么就能找到答案的。
    要做出来后反思/回味/悟的lz加油good luck
      

  8.   

    现在企业都基本不使用ajax        ????
      

  9.   

    到现在
     Ajax和javascript的区别我都不知道
     struts和servlet的关系我都说不清楚
      

  10.   

    真正的网站 要考虑到客户端与服务器交互频率的问题
    你什么都用AJAX搞 大网站要不了几分钟估计就滩掉了。
    AJAX不是万能的。还有stuts1 和stuts2 的问题呢 struts2是趋势 但目前还是有很多使用struts1的。sturts1是标准的MVC模式。
    JQUERY是一个JS框架。你使用JQUERY的AJAX方法并不能说明你比使用JS中的AJAX高明。只是代码要简洁点而已。
      

  11.   

    各位高手:
    我现在最主要的问题是,9楼的朋友说的第一点:
    1.即使不用struts标签,仍然可以将参数传入actionForm如何实现,能说一下代码流程,或者给一下例子源码,或者是稍微明确说一下吗?
      

  12.   

    <input type="text" name="user.name" />
    这样提交到后台的actionform,它会自动去找变量名叫user的name属性,调用setName(String name)方法给user的name属性赋值
      

  13.   

    声明一下   第一个是  ajax   
    第二个  是  struts
      

  14.   

    本人是很少用到struts的标签的,页面怎么提交数据服务器,lz不知有没有想过?
      

  15.   

    再笑。
    对9楼观点一点补充  
    纯粹个人使用习惯
    1.即使不用struts标签,仍然可以将参数传入actionForm
    既然都不用struts标签了  ,也就别用actionForm了 直接在action中写request.getParameter("name");
    也是个人观点  struts的标签实在是很烂。。 
      

  16.   

    感谢29楼高手的指点,我也觉得struts1的标签很乱,不好使用。按照你的说法,直接在action中使用request.getParameter("name");,我会使用,也就是使用ajax技术,指定url为action即可。我也是这样想的。如果这样的话,又存在另外一个问题:
    如果这样使用struts1,那么struts1的action与ajax中使用的servlet有什么区别吗?
    如果有区别,那么,如何在使用ajax和struts1的同时,得到封装好的request和response,以及mapping?
      

  17.   

    请教高手,应该如何做才能实现:
    不使用struts1的标签,而将前端的form、request、response、mapping封装好传入struts1的action?
      

  18.   

    ajax不就是JAVASCRIPT实现的异步请求么 
      

  19.   


    #21楼的回答已经很正确了。
    <action标签的name设置成user,user所对应的actionForm中有个属性叫name.
      

  20.   

    服务器端标签语言那是什么,你还没理解struts标签最后还是生成html标签,你自己打开浏览器源文件看看就知道怎么传进actionForm了
      

  21.   

    建议楼主多看一些struts1与ajax基础的书再来这边提问,这样会更有效率,这是个人建议!