1,页面
- <?xml version="1.0" encoding="utf-8"?>
- <?page id="indexPage" title="" id="indexPage" cacheable="false" language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?>
- <?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>
- <?taglib uri="http://www.zkoss.org/zktools/zktools" prefix="z"?>
- <?link rel="stylesheet" href="/css/global.css" type="text/css" media="screen" ?>
- <window xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"
- apply="${z:ctrl('indexController')}">
- 浏览目录
- <textbox id="txtRoot"></textbox><button forward="onLoadFiles" label="Browse..."></button>
- <tree id="treeDir">
- </tree>
- </window>
<?xml version="1.0" encoding="utf-8"?> <?page id="indexPage" title="" id="indexPage" cacheable="false" language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?> <?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?> <?taglib uri="http://www.zkoss.org/zktools/zktools" prefix="z"?> <?link rel="stylesheet" href="/css/global.css" type="text/css" media="screen" ?> <window xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd" apply="${z:ctrl('indexController')}"> 浏览目录 <textbox id="txtRoot"></textbox><button forward="onLoadFiles" label="Browse..."></button> <tree id="treeDir"> </tree> </window>
2,java代码,关于spring controller自动注册注解zk+hibernate+spring零配置
- import java.io.File;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.context.annotation.Scope;
- import org.springframework.stereotype.Controller;
- import org.zkoss.zk.ui.event.Event;
- import org.zkoss.zk.ui.event.EventListener;
- import org.zkoss.zk.ui.event.Events;
- import org.zkoss.zk.ui.util.GenericAutowireComposer;
- import org.zkoss.zul.Treeitem;
- import org.zkoss.zul.api.Textbox;
- import org.zkoss.zul.api.Tree;
- import org.zkoss.zul.api.Treechildren;
- import com.sun4love.common.web.zk.ZkUtils;
- @Controller
- @Scope("prototype")
- public class IndexController extends GenericAutowireComposer {
- private static final long serialVersionUID = 5909684044186358102L;
- private Textbox txtRoot;
- private Tree treeDir;
- public void onLoadFiles() {
- String root = txtRoot.getText();
- File file = new File(root);
- if (!file.exists() || file.isFile()) {
- ZkUtils.showExclamation(String.format("%s不存在或不是一个目录", root), "提示");
- return;
- }
- if (treeDir.getTreechildrenApi() == null) {
- new org.zkoss.zul.Treechildren().setParent(treeDir);
- }
- createTreeitem(file, treeDir.getTreechildrenApi());
- }
- private void createTreeitem(final File file, Treechildren tc) {
- String fileName = StringUtils.isBlank(file.getName()) ? file
- .getAbsolutePath() : file.getName();
- final Treeitem treeitem = new Treeitem(fileName, file);
- if (file.isDirectory()) {
- treeitem.setImage("/images/ClosedFolder.gif");
- treeitem.addEventListener(Events.ON_CLICK, new EventListener() {
- public void onEvent(Event evt) throws Exception {
- try {
- File[] fs = file.listFiles();
- if (fs == null) {
- return;
- }
- if (!createTreechildren(treeitem)) {
- return;
- }
- for (File f : fs) {
- createTreeitem(f, treeitem.getTreechildren());
- }
- } catch (Exception e) {
- ZkUtils.showExclamation("无访问目录权限", "提示");
- }
- }
- });
- } else {
- treeitem.setImage("/images/file_16x16.gif");
- }
- treeitem.setParent(tc);
- }
- private boolean createTreechildren(Treeitem item) {
- if (item.getTreechildrenApi() == null) {
- new org.zkoss.zul.Treechildren().setParent(item);
- return true;
- } else {
- return false;
- }
- }
- }
import java.io.File;
import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericAutowireComposer;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.api.Textbox;
import org.zkoss.zul.api.Tree;
import org.zkoss.zul.api.Treechildren;
import com.sun4love.common.web.zk.ZkUtils;
@Controller
@Scope("prototype")
public class IndexController extends GenericAutowireComposer {
private static final long serialVersionUID = 5909684044186358102L;
private Textbox txtRoot;
private Tree treeDir;
public void onLoadFiles() {
String root = txtRoot.getText();
File file = new File(root);
if (!file.exists() || file.isFile()) {
ZkUtils.showExclamation(String.format("%s不存在或不是一个目录", root), "提示");
return;
}
if (treeDir.getTreechildrenApi() == null) {
new org.zkoss.zul.Treechildren().setParent(treeDir);
}
createTreeitem(file, treeDir.getTreechildrenApi());
}
private void createTreeitem(final File file, Treechildren tc) {
String fileName = StringUtils.isBlank(file.getName()) ? file
.getAbsolutePath() : file.getName();
final Treeitem treeitem = new Treeitem(fileName, file);
if (file.isDirectory()) {
treeitem.setImage("/images/ClosedFolder.gif");
treeitem.addEventListener(Events.ON_CLICK, new EventListener() {
public void onEvent(Event evt) throws Exception {
try {
File[] fs = file.listFiles();
if (fs == null) {
return;
}
if (!createTreechildren(treeitem)) {
return;
}
for (File f : fs) {
createTreeitem(f, treeitem.getTreechildren());
}
} catch (Exception e) {
ZkUtils.showExclamation("无访问目录权限", "提示");
}
}
});
} else {
treeitem.setImage("/images/file_16x16.gif");
}
treeitem.setParent(tc);
}
private boolean createTreechildren(Treeitem item) {
if (item.getTreechildrenApi() == null) {
new org.zkoss.zul.Treechildren().setParent(item);
return true;
} else {
return false;
}
}
}
效果图