Wicket演示脚本 (AJAX技术及架构演讲续2)
Wicket演示
演示准备
- 下载和安装NetBeans 6.0 Beta 2。NetBeans 6.0现在已进入Beta
2,很快汉化版就会随着正式版本推出。
- 下载Wicket
NetBeans Plugin,此插件支持Wicket1.3
- 下载Ajax_DemoData.rar。这是一个NetBeans项目,用来给演示程序提供数据,这样就不用在演示的时候敲入数据了。这里面就包含了一个Java类:DemoDataProvider,调用DemoDataProvider.getDemoData(String
prefix)方法会返回一个常用编程语言的列表。这里为了简单起见,数据都是手工录入的,在你的实际项目中数据可以来自数据库或者是web服务等动态的数据源。下载后按以下步骤安装:
a.
解压rar文件到本地目录
b.
在NetBeans里通过“File -> Open Project”打开这个项目。
演示脚本
- 启动NetBeans。
- ”
File” -> “New Project”。
- 在“New Project”对话框,左侧选“Web”,右侧选“Web Application”,然后“Next”。
- 在“New Web Application”对话框,“Project Name”=WicketDemo,“Server“=”GlassFish V2“然后“Next”。
- 在“Frameworks”对话框,选择“Wicket 1.3”,然后“Finish”.
- NetBeans自动生成项目并打开“index.jsp”,关闭“index.jsp”,Wicket项目的首页不是这一页。
- 打开”WicketDemo”
-> “Source Packages”->”com.myapp.wicket”目录下的两个文件
- Home.html,这是页面的显示
- Home.java,这是页面背后相关的逻辑。Wicket的一个优点就是严格分隔显示和逻辑
- 在Home.html里的“<span
wicket:id=’mainNavigation’/>”语句后加入下列HTML语句。如幻灯片里提到,wicket也是基于组件的框架,wicket就是通过“wicket:id=…”将一个普通的HTML tag变成Wicket组件的,每个wicket组件都需要相应的Java逻辑来支持,Java逻辑定义在和HTML文件相对印的Java源文件里,在我们的演示中就是Home.java了。
|
<form wicket:id="form">
<input type="text"
wicket:id="prefix"/>
<span wicket:id="terms
">$%^&*</span>
</form>
|
- 在Home.java里的Home构造函数里加入以下程序。具体的Wicket
API细节可古狗一下,搜索结果的第一条就是了(很火呀,考虑到wicket还有别的意思)
|
public Home() {
Form form =
new Form("form");
add(form);
final
AutoCompleteTextField field = new AutoCompleteTextField("prefix",
new Model("")) {
protected Iterator getChoices(String input) {
List<String>
result = DemoDataProvider.getDemoData(input);
return result.iterator();
}
};
form.add(field);
final Label
label = new Label("terms", field.getModel());
label.setOutputMarkupId(true);
form.add(label);
field.add(new AjaxFormSubmitBehavior(form, "onchange") {
protected void onSubmit(AjaxRequestTarget target) {
target.addComponent(label);
}
});
}
|
- NetBeans会报错,是因为需要导入类。在程序编辑框里点右键,选择“Fix Imports”,然后选择需要的类,注意需要做两次“Fix
Imports”. 按下图选择,要注意的是“Label”,不知为什么是灰的。

- 好了,可运行程序了,简单吧?
Posted at
07:42下午 十一月 15, 2007
by Michael Li in Web 2.0 |