ProductSearch.jsp
上传用户:lsj999sz
上传日期:2022-06-15
资源大小:4717k
文件大小:3k
源码类别:

ICQ/即时通讯

开发平台:

Java

  1. <%@ page language="java" import="java.util.*, com.bjsxt.shopping.category.*" pageEncoding="GB18030"%>
  2. <%!
  3. private List<Category> getTopCategories(List<Category> categories) {
  4. List<Category> topCategories = new ArrayList<Category>();
  5. for(int i=0; i<categories.size(); i++) {
  6. Category c = categories.get(i);
  7. if(c.getGrade() == 1) {
  8. topCategories.add(c);
  9. }
  10. }
  11. return topCategories;
  12. }
  13. private List<Category> getChilds(Category parent, List<Category> categories) {
  14. List<Category> childs = new ArrayList<Category>();
  15. for(int i=0; i<categories.size(); i++) {
  16. Category c = categories.get(i);
  17. if(c.getPid() == parent.getId()) {
  18. childs.add(c);
  19. }
  20. }
  21. return childs;
  22. }
  23.  %>
  24. <%
  25. List<Category> categories = CategoryService.getInstance().getCategories();
  26. List<Category> topCategories = getTopCategories(categories);
  27.  %>
  28. <%
  29. String path = request.getContextPath();
  30. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  31. %>
  32. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  33. <html>
  34.   <head>
  35.     <base href="<%=basePath%>">
  36.     
  37.     <title>My JSP 'ProductSearch.jsp' starting page</title>
  38.     
  39. <meta http-equiv="pragma" content="no-cache">
  40. <meta http-equiv="cache-control" content="no-cache">
  41. <meta http-equiv="expires" content="0">    
  42. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  43. <meta http-equiv="description" content="This is my page">
  44. <!--
  45. <link rel="stylesheet" type="text/css" href="styles.css">
  46. -->
  47. <script type="text/javascript">
  48. function change() {
  49. if (document.frm1.parent.selectedIndex == 0) {
  50. document.frm1.child.length = 1;
  51. document.frm1.child.selectedIndex = 0
  52. document.frm1.child.options[0].text = "Select Child:";
  53. document.frm1.child.options[0].value = "-1";
  54. }
  55. <%
  56. for(int i=0; i<topCategories.size(); i++) {
  57. Category parent = topCategories.get(i);
  58. List<Category> childs = getChilds(parent, categories);
  59. %>
  60. if (document.frm1.parent.options[document.frm1.parent.selectedIndex].value == "<%=parent.getId()%>") {
  61. document.frm1.child.length = <%=childs.size() + 1%>;
  62. document.frm1.child.selectedIndex = 0
  63. document.frm1.child.options[0].text = "Select Child:";
  64. document.frm1.child.options[0].value = "-1";
  65. <%
  66. for(int j=0; j<childs.size(); j++) {
  67. %>
  68. document.frm1.child.options[<%=j+1%>].text = "<%=childs.get(j).getName()%>";
  69. document.frm1.child.options[<%=j+1%>].value = "<%=childs.get(j).getId()%>";
  70. <%
  71. }
  72. %>
  73. }
  74. <%
  75. }
  76. %>
  77. }
  78. </script>
  79.   </head>
  80.   
  81.   <body>
  82.     联动菜单有好多种技术 <br>
  83.     1:提前取出来所有的内容 <br>
  84.     2:第一级菜单改变的时候, 提交到本身页面, 刷新页面<br>
  85.     3:使用Frame<br>
  86.     4:AJAX<br>
  87.     
  88.     <center>第一种</center>
  89.     <form name="frm1">
  90.      TOP CATEGORY:
  91.      <select name="parent" onchange="change()">
  92.      <option value="-1">Please Select:</option>
  93.      <%
  94.     
  95.      for(int i=0; i<topCategories.size(); i++) {
  96.      Category parent = topCategories.get(i);
  97.      %>
  98.      <option value="<%=parent.getId()%>"><%=parent.getName()%></option> 
  99.      <% 
  100.      }
  101.      %>
  102.      </select>
  103.      CHILD CATEGORY:
  104.      <select name="child">
  105.      <option value="-1">Select Child:</option>
  106.      </select>
  107.     </form>
  108.     
  109.     <br>
  110.     <br>
  111.     <br>
  112.     <br>
  113.     <br>
  114.     
  115.     
  116.   </body>
  117. </html>