会社の最近のプロジェクトでは、ツリー型のドロップダウン ボックスを使用する必要がありました。インターネット上で多くのソース コードを見つけましたが、コードの移植性が高く、データの取得が容易なため、最終的に zTree を使用して実装しました。早速、コードに進みましょう。 index.jsp コードをコピー コードは次のとおりです: <% @ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=" c"% > <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <br><!-- <BR>var 設定 = { <BR>view: { <BR>dblClickExpand: false <BR>}, <BR>data: { <BR>simpleData: { <BR>enable: true <BR>} <BR>}, <BR>callback: { <BR>beforeClick: beforeClick, <BR>onClick : onClick <BR>} <BR>}; <br><br>//json データ ソース。以下に示すように、バックグラウンドから json 文字列を読み取り、json オブジェクトに変換することもできます。 /var strNodes = '${jsonList}'; <BR>//var zNodes = eval("(" strNodes ")"); // json 文字列を json オブジェクト配列に変換します。strNode は「()」を追加する必要があります。変換は機能しません 成功しました<BR>var zNodes =[ <BR>{id:1, pId:0, name:"Beijing"}, <BR>{id:2, pId:0, name:"Tianjin"}, <BR>{ id:3, pId:0, name:"上海"}、<BR>{id:6, pId:0, name:"重慶"}、<BR>{id:4, pId:0, name:"河北省", open:true}, <BR>{id:41, pId:4, name:"石家荘"}, <BR>{id:42, pId:4, name:"保定"}, <BR>{ id:43, pId:4, name:"邯鄲"}, <BR>{id:44, pId:4, name:"承徳"}, <BR>{id:5, pId:0, name:"広東省", open:true}, <BR>{id:51, pId:5, name:"広州"}, <BR>{id:52, pId:5, name:"深セン"}, <BR>{ id:53, pId:5, name:"東莞"}, <BR>{id:54, pId:5, name:"佛山"}, <BR>{id:6, pId:0, name:"福建省", open:true}, <BR>{id:61, pId:6, name:"福州"}, <BR>{id:62, pId:6, name:"アモイ"}, <BR>{ id:63, pId:6, name:"Quanzhou"}, <BR>{id:64, pId:6, name:"Sanming"} <BR>]; <BR><br>関数 beforeClick (treeId,treeNode ) { <br>var check = (treeNode && !treeNode.isParent); <BR>if (!check)alert("都市のみ選択できます..."); <BR>return check; 🎜>} <BR><BR>function onClick(e,treeId,treeNode) { <br>var zTree = $.fn.zTree.getZTreeObj("treeDemo"), <br>nodes = zTree.getSelectedNodes(), <BR>v = " "; <BR>nodes.sort(function Compare(a,b){return a.id-b.id;}); <BR>for (var i=0, l=nodes.length; i<l; i ) { <BR>v = ノード[i].name ","; <BR>} <BR>if (v.length > 0 ) v = v.substring(0, v.length- 1); <BR>var cityObj = $("#citySel"); <BR>} <BR><BR>関数 showMenu() cityObj = $(" #citySel"); <BR>var cityOffset = $("#citySel").offset(); <br>$("#menuContent").css({left:cityOffset.left "px" 、top:cityOffset.top cityObj.outerHeight() "px"}).slideDown("fast"); <br>function hiddenMenu () { <BR>$("#menuContent").fadeOut("fast"); <BR>$("body").unbind("mousedown", onBodyDown); <BR> 🎜>function onBodyDown(event) { <br>if (!(event.target.id == "menuBtn" ||event.target.id == "menuContent" || $(event.target).parents("# menuContent").length>0)) { <br>hideMenu(); <BR>} <BR>} <BR><BR>$(document).ready(function(){ <BR>$.fn.zTree .init($( "#treeDemo"), 設定, zNodes); <BR>//-> <BR></head>; <body> <br><div class="zTreeDemoBackground left"> <br><li class="title"<span class=" highlight_red">選択 都市を選択するときに、Ctrl キーまたは Cmd キーを押して複数選択を実行します</span></li> <br><li class="title"> City:<input id= citySel" type="text " readonly value="" style="width:120px;"/> <br><a id="menuBtn" href="#" onclick="showMenu();" >/ a></li> <br></div> <br><div id="menuContent" class="menuContent" style="display:none" ; 位置: 絶対; "> <br> <ul id="treeDemo" class="ztree" style="margin-top:0;"></ul> <br> /div> <br></body> <br><br><br>春の背景<br><br>json データ クラス<br><div class="codetitle"> <span><a style="CURSOR: pointer" data="46201" class="copybut" id="copybut46201" onclick="doCopy('code46201')"><u>コードをコピー</u></a></span> コードは次のとおりです:</div> <div class="codebody" id="code46201"> <br>public class EquipTypeJson { <br>private String id; <br>private String getId() { <br>return id; >} <br>public void setId(String id) { <br>this.id = id; <br>} <br>public String getPId() { <br>return <br>} <br>public void; setPId(String pId) { <br>this.pId = pId; <br>} <br>public String getName() { <br>名前を返す; <br>} <br>public void setName(String name) { <br>this .name = name; <br><br><br>} <br><br> <br>コントローラー ページ<br><br><br> </div> <br>コードをコピー<br> <div class="codetitle"> <span> コードは次のとおりです。 <a style="CURSOR: pointer" data="24175" class="copybut" id="copybut24175" onclick="doCopy('code24175')"><u> </u>public ModelAndView List(HttpServletRequest request, HttpServletResponse response,Product prod) throws Exception { </a>Map map=new HashMap() ; </span>List< EquipTypeJson> list = testService.getAllEquipType();// データベースからソース データを取得します</div>JSONArray = JSONArray.fromObject(list); //リスト データを json オブジェクトに変換します= jsonArray.toString() ; // json オブジェクトを文字列に変換します <div class="codebody" id="code24175">map.put("jsonList", json); <br>return new ModelAndView("equip/List").addAllObjects(map); <br> <br> </div> </div>