Board.java(板块与子版块)
package model; import java.util.ArrayList; import java.util.List; public class Board { private int id; private String name; //自引用外键,自关联 private int parentid; //子版块集合 private List<Board> boards=new ArrayList<Board>(); public List<Board> getBoards() { return boards; } public void setBoards(List<Board> boards) { this.boards = boards; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getParentid() { return parentid; } public void setParentid(int parentid) { this.parentid = parentid; } }
package action; import java.util.HashMap; import model.Board; import com.opensymphony.xwork2.ActionSupport; public class MenuAction extends ActionSupport { //主板块id private int index; private HashMap<String,Board> dataMap=new HashMap<String, Board>(); @Override public String execute() throws Exception { //第一个板块 Board java=new Board(); //主板块parentid=0 java.setParentid(0); java.setId(1); java.setName("java"); //子版块 Board jsp=new Board(); //主板块parentid=0 jsp.setParentid(1); jsp.setId(3); jsp.setName("jsp"); Board ssh=new Board(); //主板块parentid=0 ssh.setParentid(1); ssh.setId(4); ssh.setName("ssh"); //主板块添加子版块 java.getBoards().add(jsp); java.getBoards().add(ssh); //第二个主板块 Board net=new Board(); //主板块parentid=0 net.setParentid(0); net.setId(2); net.setName(".net"); //子版块 Board mvc=new Board(); //主板块parentid=0 mvc.setParentid(2); mvc.setId(5); mvc.setName("mvc"); Board wcf=new Board(); //主板块parentid=0 wcf.setParentid(2); wcf.setId(6); wcf.setName("wcf"); //主板块添加子版块 net.getBoards().add(wcf); net.getBoards().add(mvc); dataMap.clear();//每次充值前先清空 if(index==1){ dataMap.put("board",java); }else{ //dataMap.clear();//每次充值前先清空 dataMap.put("board",net); } System.out.println(java.toString()+"----------------"); return SUCCESS; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public HashMap<String, Board> getDataMap() { return dataMap; } public void setDataMap(HashMap<String, Board> dataMap) { this.dataMap = dataMap; } }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="json" extends="json-default"> <action name="json" class="action.MenuAction" > <result type="json"> <param name="root">dataMap</param> </result> </action> </package> </struts>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP ‘index.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 src="${pageContext.request.contextPath}/jquery-1.10.1.js" type="text/javascript"><!--引用js文件--> </script> <script type="text/javascript"> $(function(){ $("#mianmenu").change(function(){ $.getJSON("/menu/json",{index:$(this).val()},function(data){ var boards=data.board; //alert(boards[0]); var myOptions=‘‘; for(i=0;i<boards.boards.length;i++){ myOptions+=‘<option value="‘+boards.boards[i].id+‘">‘+boards.boards[i].name+‘</option>‘; $("#childmenu").html(myOptions); } } ); } ); }); </script> </head> <body> <select name="index" id="mianmenu"> <option value="1">java</option> <option value="2">.net</option> </select> <select name="childmenu" id="childmenu"> </select> </body> </html>
原文:http://blog.csdn.net/yantingmei/article/details/21178077