如果数据库里面的数据更改比较频繁,而且数据量又大,所以要能时时刻刻观测到数据的变化,而且页面不好显示一大屏数据,所以要分页。本人冥思苦想,关于实时局部刷新需要ajax ,本人对dwr不是很熟,可以在页面设置一个定时器,定时调用js函数访问后台数据库,但要分页,就必须将当前页也要定时提交到后台,试问这个变量如何放到定时器调用的那个访问数据库的函数。如果有类似做过的经验,请帖出页面部分源代码。并稍加注释,小弟时间紧急,公司任务快到期了

解决方案 »

  1.   

    首先在WEB-INF下建一个dwr.xml文件,导入dwr.jar然后在web.xml中配置:
    <servlet>
      <description>DWR controller servlet</description>
      <servlet-name>DWR controller servlet</servlet-name>
      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
      <init-param>
       <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
        </servlet>
        <servlet-mapping>
         <servlet-name>DWR controller servlet</servlet-name>
         <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>
    以上用过servlet的应该都看得懂下面就是把业务层的操作对象配置到dwr.xml文件中(怎样配置,具体参考dwr);在你需要用到dwr的jsp页面引以下js文件
    <script type='text/javascript' src='${ctx}/dwr/interface/selectOrder.js'></script>
    ----这个js是根据你配到dwr.xml文件的类生成的,selectOrder就是dwr中javascript的值,selectOrder就是在jsp页面能访问你配在dwr.xml文件里类的对象。
    <script type='text/javascript' src='${ctx}/dwr/engine.js'></script>
    <script type='text/javascript' src='${ctx}/dwr/util.js'></script>然后在页面用js直接调用即可:
    <script>
       function select(){
          selectOrder.method(parameter,..,callback);  //调用在dwr.xml中配置的java方法
       }
       var callback=function(data){                   //接收返回值
          alert(data);    selectOrder.method()的返回值
       }
    </script>
      

  2.   

    至于分页,你可以在业务层分好,再用dwr返回给页面
      

  3.   

    DWR调用方法和Java调用方法没什么区别
    比如:Java类A 有一方法 public List getContensByPage(int pageNo)
    配置:<create creator="new" javascript="a">
          <param name="class" value="com.A"/>
        </create>
    页面上用:a.getContensByPage(pageNo,cb)调用  cb为回调函数。
      

  4.   

    感谢 anbeginner 的热情回答
    你以上的做法我明白,对于分页也是在业务层做好了,只要传递一个变量,当前页。但页面在定时刷新,当我跳转到下一页,可以这样:
    当前页+1,然后传到后台,这个没有问题,问题在于定时刷新,我比如在第二页,就只定时刷新第二页,这个页数不会保持状态啊,如果可以用session,在js中又如何调用session呢
      

  5.   

    你可以在页面加个隐藏域。来保存当前页面数,将它个参数通过dwr传到后台.调用完方法,再通过dwr传到页,再将这个隐藏域设值一次。
      

  6.   

    建议使用jquery并且使用json格式进行数据传输,google一下例子有很多!