页面执行方法:
searchForm.action = 'userAction!searchUser.do';
searchForm.submit();
action代码:
public String searchUser() {

if ("0".equals(cid) && keyword.trim().length()<1) {
return "list";
} else {
                        //这里的方法执行了两遍
String sql = getSql(request);
System.out.println(System.currentTimeMillis());
List<User> uList = CommonDao.findByPageForRequest(sql, 10, 1, request); request.setAttribute("uList", uList);
}
return SUCCESS;
}

解决方案 »

  1.   

    不太理解是什么原因早晨的  你看看你form表单哪里触发事件是不是也做submit了
      

  2.   

    这里是按钮,是一个图片。
    <input name="imageField" type="image" onclick="return search();" src="<%=basePath%>images/search.gif" width="45" height="20" border="0" class="np" />这里是提交和验证方法
    function search(){
    var cid = $("#cid").val();
    var keyword = $("#keyword").val();
    if(cid !=0 && keyword.length<1){
    alert("请输入关键字!");
    return false;
    }else{
    searchForm.action = 'userAction!searchUser.do';
    searchForm.submit();
    return true;
    }
    }
      

  3.   

    断点运行的时候能看到运行了几次javascript么?
      

  4.   


    js的看不到,因为提交到了action里面。
    在action里面可以看到这个查询方法执行了两次。
      

  5.   

    看下你的form表单是不是用个submit
      

  6.   

    <form name='searchForm' action='' method='post'>
    <table width='100%'  border='0' cellpadding='1' cellspacing='1' align="center" style="margin-top:8px">
      <tr>
        <td align='center'>
          <table border='0' cellpadding='0' cellspacing='0'>
            <tr>
              <td width='90' align='center'>搜索条件:</td>
              <td width='160'>
              <select name='cid' id="cid" style='width:150'>
              <option value='0'>选择类型</option>
               <option value='1'>用户名</option>
               <option value='2'>登录时间</option>
               <option value='3'>退出时间</option>
               <option value='4'>登录IP</option>
               <option value='5'>登录次数</option>
              </select>
            </td>
            <td width='70'>关键字:</td>
            <td width='160'>
               <input type='text' name='keyword' id='keyword' style='width:150px' />
            </td>
            <td width='70'>排序:</td>
            <td width='110'>
         <select name='orderby' id="orderby" style='width:80px'>
                <option value='0'>排序</option>
                <option value='1'>ID正序</option>
                <option value='2'>ID倒序</option>
                <option value='3'>用户名正序</option>
                <option value='4'>用户名倒序</option>
                <option value='5'>最后登陆</option>
                <option value='6'>最后退出</option>
           </select>
            </td>
            <td>
              <input name="imageField" type="image" onclick="return search();" src="<%=basePath%>images/search.gif" width="45" height="20" border="0" class="np" />
            </td>
           </tr>
          </table>
        </td>
      </tr>
    </table>
    </form>
      

  7.   

    把你的“return false”和"return true" 都改为return试试
      

  8.   

    1.首先判断你是表单是否重复提交。
    2.判断你是action配置文件是否配置有问题,是否重新定向到了你的acton里面。
    3.检查你的js提交方法。
      

  9.   

    还有你刷新下页面看看你的action执行了几次。
      

  10.   

    刷新的时候只执行了一次action方法。
      

  11.   

    这样写可以的。
    <input name="imageField" type="button" value="查询" onclick="return search();"
      

  12.   

    把type改为button就可以了。
    谢谢各位。
      

  13.   


    <input name="imageField" type="image" onclick="search();" src="<%=basePath%>images/search.gif" width="45" height="20" border="0" class="np" />
                                                </td>页面要这样写search这个方法要return false,不然脚本提交一次,按钮提交一次。