本人初学SSH,AJAX,在实际项目中遇到些问题,还希望能有大侠不吝赐教,
项目是个网上聊天室,1,要求在首页登录部分要求输入用户名和密码后不是马上转到聊天页面,而是显示一个隐藏层,显示欢迎回来,同时有一个“开始聊天”的按钮或者超链接,在点击“开始聊天”后,进入聊天页面。2,其次,聊天内容要实现无刷新更新,
方案1,聊天内容需要存入application里,是一个list,如果我用ajax dwr框架的话,可以通过调用后台方法,得到这个list,从而在页面上显示出来,实现要求2,
       问题:但是如果使用dwr的话,在要求1里要求登录后先不跳转页面,这就需要后台方法通过验证返回一个boolean值或者对象,判断是否为真,或者对象是否为空,而后台struts action我用的是DispatchAction,所有的方法返回值都是一个actionForward,dwr没办法识别,如果我用一个普通方法的话,那么就没办法用到方法里的DynaActionForm了,方案2,直接手写ajax,在action里让所有的action方法都返回值为null,通过out.write()向页面ajax传递字符串值,但这样,要求2就没办法实现了,因为需要list也许想法还有不合理的地方,还请大侠赐教,小弟愚笨,还请解释详细点,thank u!

解决方案 »

  1.   

    用ajax  可以啊!页面用js 修改显示!
      

  2.   

    关注中,呵呵,我也刚开始做SSH的聊天室,以前写过jsp+servlet版本的,想对比下两者的性能差异~
      

  3.   

     对楼主的一点小建议:
         
      如果楼主采用的是SSH框架做的话
           1. 把在jsp界面上的标签改为Struts标签
           2. 在生成的Action和ActionFrom中,在Action中写跳转语句,就是楼主所说的actionForward跳转代码。
           3. DynaActionForm中写或生成字段的GET()和SET()方法。也可以采用ajax 实现~
      

  4.   

    没太明白楼上的意思,页面是用的struts标签,dynaActionForm中是用的一个VO,
    可是具体到ajax怎么实现啊,因为聊天内容我是放在数据库里的,每次调用一次方法取出来,这样取出来的就是一个list,然后显示在页面上,这样实现页面的聊天内容更新,
    可是我怎么返回给页面的javascript调用啊,DispatchAction类返回类型是一个actionForward值,如果我用手写ajax,不用dwr框架的话,在DispatchAction类就要用到our.write来向页面传递值,但是这只能传递字符串或者boolean值,不能传Lis
    t,这就是我的矛盾的地方,我相信肯定不是不行,只是我不知道怎么办而已