Michael的博客

« DynaFaces演示脚本 (AJAX技... | Main | Google Web Toolkit演示... »

http://developers.sun.com.cn/blog/sunblade/date/20071115 星期四 十一月 15, 2007

Wicket演示脚本 (AJAX技术及架构演讲续2)

演讲幻灯片

 

Wicket演示

 

演示准备

  1. 下载和安装NetBeans 6.0 Beta 2NetBeans 6.0现在已进入Beta 2,很快汉化版就会随着正式版本推出。
  2. 下载Wicket NetBeans Plugin,此插件支持Wicket1.3
  3. 下载Ajax_DemoData.rar。这是一个NetBeans项目,用来给演示程序提供数据,这样就不用在演示的时候敲入数据了。这里面就包含了一个Java类:DemoDataProvider,调用DemoDataProvider.getDemoData(String prefix)方法会返回一个常用编程语言的列表。这里为了简单起见,数据都是手工录入的,在你的实际项目中数据可以来自数据库或者是web服务等动态的数据源。下载后按以下步骤安装:
        a.       解压rar文件到本地目录
     
    b.      NetBeans里通过“File > Open Project”打开这个项目。

 

演示脚本

  1. 启动NetBeans。
  2. ” File” -> “New Project”。
  3. 在“New Project”对话框,左侧选“Web”,右侧选“Web Application”,然后“Next”。
  4. 在“New Web Application”对话框,“Project Name”=WicketDemo,“Server“=”GlassFish V2“然后“Next”。
  5. 在“Frameworks”对话框,选择“Wicket 1.3,然后“Finish.
  6. NetBeans自动生成项目并打开“index.jsp,关闭“index.jsp,Wicket项目的首页不是这一页。
  7. 打开”WicketDemo” -> “Source Packages”->”com.myapp.wicket”目录下的两个文件
    1. Home.html,这是页面的显示
    2. Home.java,这是页面背后相关的逻辑。Wicket的一个优点就是严格分隔显示和逻辑
  8. 在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>

 

  1. 在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);

            }

        });

    }

 

  1.   NetBeans会报错,是因为需要导入类。在程序编辑框里点右键,选择“Fix Imports”,然后选择需要的类,注意需要做两次“Fix Imports”. 按下图选择,要注意的是“Label”,不知为什么是灰的。

 

  1.  好了,可运行程序了,简单吧?

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.