jsp+servlet实现联动

1.       利用selectonchange事件来触发一个action
                           

  1. 院(系):  <select name="dep"  onchange="selectTeacher()">  
  2.                               <option value="">请选择...option>  
  3.                                  <option value="computer">计算机科学option>  
  4.                               <option value="cloth">服装学院option>  
  5.                               <option value="人文学院">人文学院option>  
  6.                             select>     


 2. 调用的js

  1. <script type=< span="">"">   
  2. function selectTeacher(){   
  3. var form=document.forms[0];   
  4. var dep=form.dep.value;   
  5. alert(dep);   
  6. window.location="SelectServlet?dep="+dep;   
  7. }   
  8. </script>  

 
3.   触发的servlet

  1. String dep=request.getParameter("dep");   
  2.         SelectTeacher select=new SelectTeacher();   
  3.         List list=select.selectTeacher(dep);   
  4.         request.setAttribute("tlist",list);   
  5.         request.setAttribute("dep",dep);   
  6.          RequestDispatcher   error   =   request.getRequestDispatcher("/WEB-INF/error.jsp");      
  7.         if(list.size()>0){   
  8.             RequestDispatcher   rd   =   request.getRequestDispatcher("/WEB-INF/student.jsp");      
  9.             rd.forward(request, response);   
  10.         }   
  11.         else{   
  12.             error.forward(request, response);   
  13.         }  

 
4. 返回1中的页面,显示查询出来的信息

  1. 任课教师:<select name="teacher" >  
  2.                     <%   
  3.                      java.util.List tlist=null;   
  4.                     if(request.getAttribute("tlist")!=null){   
  5.                     tlist=(java.util.List)request.getAttribute("tlist");   
  6.   
  7.                    for(int i=0;i<tlist.size();i++){%>  
  8.                       <option value="t"><%=tlist.get(i)%>option>  
  9.                       <%}     }   
  10.                       %>  
  11.                     select>         


    

存在的问题:

   由于在通过第二步那个servlet返回原页面后,页面被重新加载.这样原来的第一个下拉列表中的信息又被清空了!现在还没有想到较好的方法.
   不过要是用struts实现的话就不会出现这样的问题了,只要在action中通过form设置一下就好了!

你可能感兴趣的:(jsp,Ajax,servlet,struts,DWR)