使用了SiteMesh的SSH框架,使用jQuery更新左侧菜单

    SiteMesh是一个装饰前台页面的极佳的framework。按照官方介绍,五分钟能入门,十分钟能熟练使用.甚至其所谓的高级特性对于我们勤劳的程序员来说也是一个薄薄的纸老虎,一戳就碎。壮哉,我大IT。


   但是SiteMesh在同时装饰两个页面的时候就会遇到一点先天性的瓶颈。比如我的页面分为四个部分,top,header,leftMenu,MainArea。现在的要求是top.jsp上面点击相关的菜单的时候,是需要menu.jsp需要进行联动的。这里使用jQUery的Ajax是一个不错的折中方案。话不多说,上一个Demo的代码:

装饰器配置文件,decorators.xml

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">
    <excludes>
    	<pattern>/*.html</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*.action</pattern>
    </decorator>
    <decorator name="menu" page="menu.jsp"/>
</decorators>


menu.jsp的文件,下面的代码是硬编码,可以修改为自己想要的:


<head>
	<title>Welcome to use AdminPortal</title>
		<script type="text/javaScript" src="resources/js/jquery-1.8.3.min.js"></script>
	<s:head/>
</head>
<body>
	<div id="dynamicMenu"></div>
	<script type="text/javaScript">
		$(document).ready(function(){
			var i = "${sessionScope.menuLevel}";
			if(i=="1"){
				$("#dynamicMenu").empty().load("resources/a.html");
			}else if(i=="2"){
				$("#dynamicMenu").empty().load("resources/b.html");
			}else if(i=="3"){
				$("#dynamicMenu").empty().load("resources/c.html");
			}else if(i=="4"){
				$("#dynamicMenu").empty().load("resources/d.html");
			}else if(i=="5"){
				$("#dynamicMenu").empty().load("resources/e.html");
			}
		});
	</script>
</body>



demoAction.java文件:


	public String execute() throws Exception {
		ActionContext.getContext().getSession().put("menuLevel", level);
		demoBiz.doSth();
		return SUCCESS;
	}

 作者 陈字文(热衷于PM\ORACLE\JAVA等,欢迎同行交流)EMAIL:ziwen@163.com  QQ:409020100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值