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;
}
}
MenuAction.java
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>