Wicket初次接触之HelloWorld

发表于:2007-06-11来源:作者:点击数: 标签:
Wicket是一个新出现的表现层框架(实际上从立项到现在也不短了)。 Java 社区里就是这样,各种各样的框架都快成灾了。以表现层的最多(在表现层、中间层和持久层中,表现层是最好 开发 的),估计大的小的,出名的不出名的,国内国外的能有几十个。Wicket目

Wicket是一个新出现的表现层框架(实际上从立项到现在也不短了)。Java社区里就是这样,各种各样的框架都快成灾了。以表现层的最多(在表现层、中间层和持久层中,表现层是最好开发的),估计大的小的,出名的不出名的,国内国外的能有几十个。Wicket目前最大的问题是名气太小,相关资料也少得可怜。即使有一点,也大都是英文的(国内的朋友听到英文,很多都头疼吧,喵!其实猫咪也很头疼,怎么也没中文的好理解)。

行了,废话不说了。现在我们来做第一个Wicket例子,所有教程中用烂了的“Hello World”。猫咪平时使用Eclipse3.2(搭配MyEclipse5)开发,你也可以使用其它IDE。Wicket的开发环境支持目前还比较差,没有Eclipse插件(今天猫咪把文章转到这里的时候,已经发现了一个插件,叫Wicekt Bench)。首先到Wicket的老窝把这个框架下到自己的机器上。网址是http://wicket.sourceforge.net。目前只要下载核心包就可以了。猫咪写这篇文章的时候,最新的版本是1.2.2。

首先,打开Eclipse,新建一个Web工程。把下来的wicket-1.2.2-bin.zip解压缩,把其中的wicket-1.2.2.jar拷贝到新建工程的WebRoot\WEB-INF\lib下。现在就可以开始写了。

首先是编写web.xml文件。< web-app>中加入如下内容:

< display-name>Wicket Examples

< servlet>

< servlet-name>HelloWorldApplication

< servlet-class>wicket.protocol.http.WicketServlet

< init-param>

 < param-name>applicationClassName

 < param-value>org.Miao.HelloWorldApplication

< /init-param>

< load-on-startup>1< /load-on-startup>

< /servlet>

< servlet-mapping>

< servlet-name>HelloWorldApplication< /servlet-name>

< url-pattern>/app/*< /url-pattern>

< /servlet-mapping>

其中WicketServlet有点类似于Struts中的ActionServlet。这个配置把所有对/app的访问由Wicket进行处理。但是Wicket中没有那些Action类。applicationClassName也只是负责返回实际处理请求的Java类。这个配置中,由一个叫HelloWorldApplication的Java类负责。这个类继承了wicket.protocol.http.WebApplication,需要实现getHomePage()方法。这个方法,返回实际处理请求的Java类。

我们需要在网页上显示一个“HelloWorld!”。我设定这个请求由一个叫HelloWorld的类处理。

下面是HelloWorldApplication的代码:

package org.Miao;

import wicket.protocol.http.WebApplication;

public class HelloWorldApplication extends WebApplication {

@Override

public Class getHomePage() {

// TODO Auto-generated method stub

return HelloWorld.class;

}

}

很简单吧。HelloWorldApplication只是把具体处理的类拿来处理,自己什么也不干。

然后是显示的页面,这里的网页名称是HelloWorld.html.Wicket中网页和Java处理类的名称必须一致,而且要放在一个目录下,不然就会发生异常。猫咪也是自己试验了好久,根据Wicket提供的QuickStart和自己根据网站HelloWorld例子写的代码做对比,才发现的。不知道是不是猫咪的英语功底太差,没有在英文说明中看到这个要求。结果好久才调好。

HelloWorld.html如下:

Message goes here



注意红色的部分,Wicket在html标准标记里加了一个属性。这样一来,美工和网页编写人员,可以不管Java代码,把精神放在网页本身。编写网页的人员,即使不懂任何Java知识也没关系,不用担心排版会破坏代码。

下面是具体的处理类HelloWorld.class。

package org.Miao;

import wicket.markup.html.WebPage;

import wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {

public HelloWorld(){

add(new Label("message","HelloWorld!"));

}

}

这个类继承自一个WebPage类。在构造函数里,使用add方法,添加了一个标签。标签名是message,内容是HelloWorld!。看到这个message了吗?它就是对应着网页里那个wicket:id属性的。

好了,现在就可以部署了。猫咪用的是自己的美国亲戚-Tomcat。大家也可以使用其它Web容器。然后运行浏览器,输入http://localhost:8080/HelloWorld/app/(这是猫咪的工程缺省路径,你根据自己的开发环境修改)。看看是不是和下面一样?如果一样,那就表示你的程序成功运行。如果显示Message goes here,那就表示哪里出了问题,你要仔细查下代码,看和猫咪写的哪里不一样,是不是这些不同造成了运行失败。

 

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)



原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...