您的位置:首页 > Web前端 > JQuery

二级联互动菜单(java jquery json实现)

2013-11-01 19:19 676 查看
菜单资源保存在数据库中。利用了jquery的ajax实现。用到的包有:json-lib-2.2.3-jdk15.jar ezmorph-1.0.6.jar json.js jquery.js

jsp页面的代码:

<%@ page contentType="text/html; charset=gbk"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript" src="js/json.js"></script>

<% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";

out.println(basePath);

%>

<script type="text/javascript">

jQuery(function($){

//alert("ok");

});

function onchangeShow(oneId){

$.ajax({

url : "<%=basePath%>cateJson.whbs",

data : {parentId : oneId}, // 参数

type : "post",

cache : false,

dataType : "json", //返回json数据

error: function(){

alert('error');

},

success:onchangecallback

});

}

function onchangecallback(data){

document.all['twoId'].options.length = 0; //清空原有的option

var str="";

for(var i=0;i<data.length;i++){

str+="<option value='"+data[i].recordId+"'>"+data[i].title+"</option>"

}

$("#twoId").html(str);

}

</script>

<html>

<body>

<div align="center">

请选择部门类型

<s:select list="rfones" listKey="recordId" listValue="title" name="oneId" theme="simple" id="oneId" value="oneID" onchange="onchangeShow(this.value)"></s:select>

请选择文件类型

<s:select list="rftwos" listKey="recordId" listValue="title" name="twoId" theme="simple" id="twoId" value="twoID"></s:select>

</div>

</body>

</html>

struts中action的代码

/**

* des:取得二级联动菜单

* autho:exceljava

* date:Nov 20, 2009

* @return

* @throws IOException

*/

public String getJsonCategory() throws IOException{

rfjsons=archiveService.getCategoryByParentID(parentId);//这里从数据库取得数据

net.sf.json.JSONArray jsonObj=net.sf.json.JSONArray.fromObject(rfjsons);//组装成json数据

sendMessage(jsonObj.toString());//向视图push json数据

return null;

}

/**

* des:封装发送json格式的数据回js

* autho:exceljava

* date:Nov 20, 2009

* @param content

* @throws IOException

*/

public void sendMessage(String content) throws IOException{

HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("UTF-8");

response.getWriter().write(content);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: