先看代码:主要目的:分页。通过DWR获取总的页数(pageCount),赋值给一个分页对象pg(一个段js实现的分页代码,没问题,不用怀疑)。dwr.xml
<create creator="spring" javascript="userAction">
     <param name="beanName" value="userAction"></param>
</create>
说明:userAction中含有获取总页数的方法gainPageCount()。addUser.jsp
<body>
<script language="JavaScript"> 
     dwr.engine.setAsync(false);//设置DWR异步为false,即为同步。
    
var pg = new showPages('pg');//声明对象并初始化

     userAction.gainPageCount(function(re){
     pg.pageCount =re; // 定义总页数(必要)
     alert("re:"+re+" pg.pageCount:"+pg.pageCount);// 测试1
     });
     alert("外部pageCount:"+pg.pageCount);// 测试2
    
pg.printHtml(2);//在页面显示分页,如 << < 1 .. 2 3 4 > >>

dwr.engine.setAsync(true);//设置DWR异步为true
</script> 
</body>再看问题:
当服务器刚开始启动,第一次访问addUser.jsp时,会先弹出 测试2 这个弹出框,然后弹出 测试1 这个弹出框。
服务器不重启的情况下,当你再次访问addUser.jsp(或者刷新本)时,就会先弹出 测试1 这个弹出框,然后弹出 测试2 这个弹出框。反正就是头一次访问跟以后的访问执行顺序不同,导致第一次访问页面会显示不正确,而以后刷新显示的结果是正确的,但是并不报任何错误和警告。其中封装分页功能的那个类showPages是没问题的。反正感觉问题很奇怪,希望各位高手解答,在线等,本人都一次提问题。

解决方案 »

  1.   

    DWREngine.setAsync(false);设置同步
      

  2.   

    呵呵 JS允许 比类似Ajax的提交要快
      

  3.   

    <body>
        <s:iterator value="userList"> 
         id:<s:property value="id"/> name:<s:property value="name"/> <s:a href="deleteUser.action?id=%{id}" onclick="return confirm('确定要删除?')">删除</s:a> <s:a href="toUpdateUser.action?id=%{id}">更改</s:a><br>
        </s:iterator>
    <%-- 这里就是问题里面的js脚本--%>
    </body>其实不用看页面,没东西。
    其中的showPages对象在另一个js文件中,已引入,而且没问题。
      

  4.   

    主要是想看怎么引入dwr的,麻烦给引入的代码,位置也很可能有影响,所以给全整个页面代码
      

  5.   

      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'addUser.jsp' starting page</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <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">
    -->
    <script type='text/javascript' src='/voteSSHFrame/dwr/engine.js'></script>
       <script type='text/javascript' src='/voteSSHFrame/dwr/util.js'></script>
    <script type="text/javascript" src="js/page.js"></script>
    <script type='text/javascript' src='/voteSSHFrame/dwr/interface/userAction.js'></script>
      
      </head>
    这输入框放进代码,格式很乱,发多了,怕不好看。
    这是头部分。
      

  6.   

    <script type='text/javascript' src='/voteSSHFrame/dwr/interface/userAction.js'></script>
    <script type='text/javascript' src='/voteSSHFrame/dwr/engine.js'></script>
    <script type='text/javascript' src='/voteSSHFrame/dwr/util.js'></script>
    <script type="text/javascript" src="js/page.js"></script>
    换成这样试试