首页  |  讨论区  |  Java文栏  |  Java源代码  |  Java开源  |  Java下载  |  Web开发  |  数据库技术  |  编程语言  |  Linux  |  业界  |  Wiki
 首页 » Java文栏 » Open Source
Wicket初次接触之HelloWorld
    发表于:2006-10-22  来自:http://www.javaresearch.org/   阅读:

Google
 
Wicket初次接触之HelloWorld - IdeaGrace | Java文栏 | Open Source,IdeaGrace,web,开发,技术,交流,教程 - http://www.ideagrace.com/
  这是猫咪前几天写在自己Blog上的。但是我的Blog实在时太冷清了。所以猫咪把自己的文章发到这里来了。希望大家多给批评意见。也希望大家多去我的Blog转转。虽然现在文章不多(猫咪以前没怎么写过文章所以写得比较慢,而且也很懒),但希望大家还是多去转转,给猫咪提提意见。
  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</display-name>
<servlet>
    <servlet-name>HelloWorldApplication</servlet-name>
    <servlet-class>wicket.protocol.http.WicketServlet</servlet-class>
    <init-param>
     <param-name>applicationClassName</param-name>
     <param-value>org.Miao.HelloWorldApplication</param-value>
    </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如下:

<html>
  <body>
    <span wicket:id="message">Message goes here</span>
  </body>
</html>
注意wicket:id="message"这个地方,Wicket在html标准<span>标记里加了一个属性。这样一来,美工和网页编写人员,可以不管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,那就表示哪里出了问题,你要仔细查下代码,看和猫咪写的哪里不一样,是不是这些不同造成了运行失败。

  同时,猫咪欢迎大家来我的Blog作客。猫咪的Blog地址是:http://blog.sina.com.cn/u/1400658603

喜欢本文?那就在线订阅更多文章更新吧!
加入技术论坛讨论
访问IdeaGrace开发者博客
浏览更多java开源项目
IdeaGrace开发者Wiki

更好的浏览体验,


关于Idea Grace | 版权声明 | 联系我们 | 友情链接
©2008 Idea Grace