福网

ZK AJAX 学习笔记第十一天 ZK的Menu

ZK AJAX 学习笔记
—-Run Java and JSP on ZK

最近忙着课程设计,累死了,啊 ,不扯 了。
Zk 的 demo 中有关于 tree 的事件,就是那个在页面间转来转去那个,而没有 menu 的,其实
实现也不很难,仿照 tree 的即可。
打 开 前 面 那 个 工 程 , 新 建 menu 文 件 夹 , 添 加 下 面 几 个 文 件 index.jsp, new.html
about.html,内容如下:

index.jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<html xmlns:x="http://www.zkoss.org/2005/zul">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Menu</title>
</head>
<body>
<x:vbox width="100%">
	<x:menubar id="menubar" width="100%">
		<x:menu label="File">
			<x:menupopup>
				<x:menuitem id="m1" label="New" value="/menu/new.html"
					use="edu.bigc.zk.menu.MyMenuItem" />
			</x:menupopup>
		</x:menu>
		<x:menu label="Help">
			<x:menupopup>
				<x:menuitem id="m2" label="About" value="/menu/about.html"
					use="edu.bigc.zk.menu.MyMenuItem" />
			</x:menupopup>
		</x:menu>
	</x:menubar>
	<x:window id="contents" border="normal" width="99%">
		<x:include id="xcontents" src="${requestScope.contentSrc}" />
	</x:window>
</x:vbox>
</body>
</html>

new.html
New

about.html
About

为了省事,事例写的很简单,但功能都有了,接下来是后台的 MyMenuItem.java 文件,内
容如下:

package edu.bigc.zk.menu;

import org.zkoss.zk.ui.ComponentNotFoundException;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.Path;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zul.Include;
import org.zkoss.zul.Menuitem;

public class MyMenuItem extends Menuitem implements AfterCompose {

	private static final long serialVersionUID = 1L;

	public void onClick() {

		String showItem = this.getValue();

		if (showItem != null) {
			Include showInc = (Include) Path
					.getComponent("/contents/xcontents");
			showInc.setSrc(showItem);
		}
	}

	public void afterCompose() {
		// TODO Auto-generated method stub
		final Execution exec = Executions.getCurrent();
		String id = exec.getParameter("id");

		Menuitem item = null;
		if (id != null) {
			try {
				item = (Menuitem) getSpaceOwner().getFellow(id);
			} catch (ComponentNotFoundException ex) { // ignore
			}
		}

		if (item == null)

			item = (Menuitem) getSpaceOwner().getFellow("m1");
		exec.setAttribute("contentSrc", (String) item.getValue());

	}
}

运行截图

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>