一个html页面中有两块框架frame,包含两个jsp页面,如下图:
<frameset name=mainFrameSet rows="25%,75%" frameborder="no" border="0" framespacing="0">   <frame src="a.jsp" name="selectStoreFrame"  scrolling="auto">
  <frame src="b.jsp" name="storeinfoFrame" scrolling="auto">
</frameset>a.jsp是设置查询条件页面,然后单击查询按钮 b.jsp显示查询结果,查询按钮怎么写,才能够保证当前html包含的两个jsp页面,a.jsp不变化,b.jsp页面刷新显示查询结果啊

解决方案 »

  1.   

    通过session共享查询条件数据,用js控制页面刷新
    frameA:a.jsp查询条件存入session中,页面提交还是返回a.jsp,同时刷新frameB里的页面要js控制FrameB:b.jsp加载时从session取条件查询输出结果
      

  2.   

    不知道我这个可行不。在a。jsp中设置查询条件,点击查询按钮后调用b。jsp中的js方法。其中b。jsp中的js方法要做几件事1、将a。jsp中的查询条件input 搞到b。jsp中(全是隐藏的),2、提交b。jsp中的表单。
      

  3.   

    a.jsp 中的按钮代码如:
    <button onclick="javascript: window.parent.frames['storeinfoFrame'].location.href='classify!listClassify.action';"
    >查询按钮</button>
    蓝色部分是你要显示查询结果的页面的frame名字,红色部分是你要进行数据库查询的action或是连接。
    这样就能达到你想要的结果
      

  4.   

    在a.jsp提交表单的时候用个targrt="b.jsp"不就行了?   
      

  5.   

    CSDN就是這個比較好,發現自己欠缺的東西可以趕緊補回來。
    我寫了6個JSP樓主你看看,我已經測試過了。index.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    </head>
    <frameset rows="20%,*" cols="*" frameborder="YES" border="1" framespacing="1" >
      <frame src="top.jsp" name="topFrame" scrolling="NO" noresize>
      <frameset rows="*" cols="15%,*" framespacing="1" frameborder="NO" border="1" >
        <frame id="leftFrame" src="left.jsp" name="leftFrame" scrolling="NO" noresize>
        <frame id="rightFrame" src="right.jsp" name="rightFrame">
      </frameset>
    </frameset>
    <body>
    </body>
    </html>
    top.jsp<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>  
    <script>
    window.parent.frames['leftFrame'].location.reload();
    window.parent.frames['rightFrame'].location.reload();
    </script>
    <body bgcolor="#99CC99"> 
        <h1></h1><a href="exit.jsp">退出</a>
      </body>
    </html>
    left.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>
    <script type="text/javascript">
    window.parent.frames['rightFrame'].location.reload();
    </script> 
    <body bgcolor="#cccccc">
    <%
    if(session.getAttribute("user")!=null){
    out.println("歡迎您:"+(String)session.getAttribute("user")+" 閣下");
    }else{
    %>
    <form action="op.jsp" method="post">
         用戶名:<input type="text" name="username"/><br>
         密&nbsp&nbsp碼:<input type="password" name="password"/><br/>
         <input type="submit" value="提 交"/>    
         </form>
    <%
    }
     %>    
      </body>
    </html>
    exit.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
    session.invalidate();
    response.sendRedirect("top.jsp");
    %>
    right.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      </head>  
    <body bgcolor="#aaabbb">
    <%
    out.println((String)session.getAttribute("user")==null?"":(String)session.getAttribute("user"));
     %>    
      </body>
    </html>op.jsp<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
         String userName=request.getParameter("username");
         String pwd=request.getParameter("password");
         if(userName!=null && pwd!=null){
         if("zhuchao".equals(userName)&&"zhuchao".equals(pwd)){
         session.setAttribute("user","zhuchao");
         response.sendRedirect("left.jsp");
         }else{
         out.println("<script>alert('用戶名或密碼錯誤!');<script>");
         response.sendRedirect("left.jsp");
         }   
         }    
         %>ps:原理其實很簡單,每次你在其中一個頁面里操作的時候,當后臺跳轉到前臺,前臺必然刷新一次
    此時刷新其它相關的頁面即可。
      

  6.   

    用target或者直接提交表单到b.jsp都可以~