wicket环境已到1.5bate版本。但鉴于资料太少以及个人时间安排,只有下了1.4版本,借鉴着王磊先生的《wicket开发指南》摸索着学习,感谢王磊先生的免费翻译制作!
org.apache.wicket.protocol.http.WicketServlet,这是1.3以后(包括1.3)的包名,在1.3以前版本应该是:wicket.protocol.http.WicketServlet。并且1.3以后版本wicket官方推荐使用filter进行wicket的web.xml设置,如下:
Page类:
运行显示Hello World!
wicket1.4下 download: http://www.apache.org/dyn/closer.cgi/wicket/1.4-rc1
环境配置与struts spring大同小异,在web.xml中写入启动插件,实现框架随系统启动而启动。
web.xml
- <servlet>
- <servlet-name>wicket</servlet-name>
- <servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class>
- <init-param>
- <param-name>applicationClassName</param-name>
- <param-value>com.wicket.application.HelloWorldApplication</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>wicket</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <display-name>Wicket Hello World Example</display-name>
- <context-param>
- <param-name>configuration</param-name>
- <param-value>development</param-value>
- </context-param>
- <filter>
- <filter-name>HelloWorld</filter-name>
- <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
- <init-param>
- <param-name>applicationClassName</param-name>
- <param-value>com.wicket.application.HelloWorldAppliaction</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>HelloWorld</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
WebApplication 类:
- package com.wicket.application;
- import org.apache.wicket.Page;
- import org.apache.wicket.protocol.http.WebApplication;
- public class HelloWorldApplication extends WebApplication {
- public Class<? extends Page> getHomePage() {
- return HelloWorldPage.class;
- }
- }
- package com.wicket.application;
- import org.apache.wicket.markup.html.WebPage;
- import org.apache.wicket.markup.html.basic.Label;
- public class HelloWorldPage extends WebPage {
- private static final long SVU = 1L;
- public HelloWorldPage(){
- add(new Label("message","Hello word!"));
- }
- }
HelloWorldPage.html
注意!wicket是没有jsp的,与后台java类的交互是由嵌入在html的组件模板来完成。并且,每个Page类相关的Html必须放在Page类的包下,并不在传统的WebRoot下!想想Asp.net中CS/VB文件与ASPX文件的目录关系。
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>index.html</title>
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=gb2312">
- <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
- </head>
- <body>
- <span wicket:id="message"></span><span>输出Hello word!</span>
- </body>
- </html>
初步感觉这东西咋这么另类呢?Java不用jsp了,只有它和Tapestry两兄弟想得出来,不过给人感觉出奇的爽,没有jsf标签没有ActionForm,V层与M层充分解耦,这真是不错。
另外一个雷人的印象就是: Wicket跟Asp.net的目录层次 .... 如不是理念不是完全相同,真可以说是一个妈生的 ...
项目下载: