初识Wicket!!

来源:互联网 发布:sql not like用法 编辑:程序博客网 时间:2024/05/21 17:07

 Wicket, 是老板推荐我们学的一个开发框架,像什么SSH之类的东东,当然也是开源的,是Apache社区下产品,业内有名言:凡Apache出品,必为精品!

 

这样一来,学习wicket更有必要了。其实对于框架之类的东东,知之胜少,只知道一些编程语言和编程IDE,然后用它们去完成一些老板交代的任务,仅此而已。

 

老规矩,先去官网下开发包,然后在网上搜一堆杂七杂八的东西,才发现,资料真的好少,而中文资料更是少得可怜了,当中最有份量的一点中文资料就是——《Wicket编程指南》,作者王磊,与我大学铁哥们同名,顿时来了兴趣了。

以下就是从该书中摘抄的几段文字,从中可以看出Wicket的一些背景。

“Wicket 是什么? 简单点说,它是一个基于Java 的Web 开发框架,与Struts,WebWork,Tapestry相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置 ( 减少了XML等配置文件的使用) ,学习曲线较低(开发方式与C/ S相似),更加易于调试(错误类型比较少,而且容易定位)。如果你对微软并不反感,可以把它看作Java 平台上的ASP.NET。”

“Wicket 的作者中有几个是原Sun公司Swing小组的开发人员(现在可能大部分已经不是了 ,我认为尽管 Swing 从界面来看,实在不算一个很成功的作品,但其设计却是非常的优秀),因此 Wicket 的框架中带有浓厚的 C/S 色彩。而他们的开发计划中,还包括了Swing , Flash 平台的支持,也就是说使用 Wicket 不仅可以可以输出 Html ,而且可以支持Swing 和 Flash ,不过和朋友经过讨论后,觉得这个计划看起来有一点不切实际,毕竟Html ,Swing , Flash 之间的差别还是很大,恐怕想要无缝移植,还是有点难度的。单是一个JavaScript ,恐怕就够头痛了。”

“Wicket 带有强烈C/S 结构的 UI 色彩,这一点有助于美工和程序人员的分工,它与Delphi 的开发方式非常类似( Delphi 使用.frm 文件保存UI 控件的定义,便于可视化设计,而用.pas 文件存储代码,从而对控件进行操作)Wicket 则是使用Html描述UI ,并将具有特殊标记的 Html 元素定义为UI 控件,在Java文件中则直接使用代码操作这些UI 控件,控制其输出及行为,样式等。这一点和Tapestry ,以及.NET平台上的ASP.NET 极为相似,也怪不得与Tapestry 的作者争论了这么久,毕竟两者的用户群有很多的重复。其实从结构上看来,无论是Tapestry,ASP.Net ,Wicket 估计都借鉴了 Applet 平台上的WebObjects ,还有Delphi 。(不要忘了,Delphi 的创建者Anders Hejlsberg就是. NET 框架的架构师,所以C# 和Asp.NET怎么看都带着Delphi 的影子。)”

“Wicket 吸收了Tapestry 的一部分内容,但我最喜欢的就是,它是基于规则的,而并非XML 配置的方式,这不仅有利于程序员学习,对系统的维护及开发规范都很有效,毕竟XML 的编写并不见得就比写一段程序来得更容易。(这里插一句题外话,我觉得XML 文件用来表示数据和资源,而不是行为,所以对于XML 我只用来存放多语言资源或者用来做数据交换。象Spring 这种大量使用XML方式,我并不欣赏,Spring 也意识到了这一点,在2.0 版本中努力的简化 Xml 的配置,但是并不尽如人意)。如果使用简单的规则来配置或者管理一个系统,用户就会很容易的查找到自己需要的内容。而通过配置文件,不管这样的一个配置文件的结构如何好,也需要在其中查找自己需要的内容,开发效率肯定要低一些。”

 

下面进行具体配置,主要目标完成国际惯例:Hello World!的完成^_^!!

根据书中介绍,结合一般开发经验,主要进行以下几个步骤进行配置:

1、JDK的配置

这个不用多讲,如果要进行JAVA开发,这个都没有进行配置的话,就是酱油帝~~~都称不上!

2、Tomcat安装与配置

同样出自Apache旗下,开源Web Server中也算拥有一大批忠实fans,虽然刚才才在CSDN上面看到一篇帖子:报道Tomcat又爆安全漏洞,但对于学习,一般小规模Web开发,完全应该好好研究研究Tomcat呀!这里插点广告:本来老板让咱给研一的新童鞋们讲一点开发知识,我准备讲Web Server的,其中Tomcat肯定是重头戏的,结果被老板给拒了,因为我讲的和研三要讲的冲突了。还想借此机会好好再研究研究一下Tomcat的,现在看来又不知是否有这个心思了。。。Tomcat的安装与配置网上也是一大箩的资料,自搜之!

3、配置Wicket

到官网下载最新版本:apache-wicket-1.4.16,解压后,里面的lib路径下有一个war包:wicket-examples-1.4.16.war,将其直接拷贝到Tomcat的WebApp下面,启动Tomcat,会自动部署该war包,通过访问Tomcat里面的应用就可看到wicket的实例了:如图

从中可以直接看到Wicket实例的效果,和源代码,不过不好看wicket的部署(.xml文件的配置情况),不过前面不是有前辈说过了吗?Wicket的一大进步就是,部署配置文件减少了许多。仅需对一个.xml文件进行少里的声明映射即可——这当然是后话。

 

现在可以进行Wicket的开发之旅了,打开Eclipse,新建一动态Web工程,然后再向里面添加Wicket支持,主要是wicket里面的lib下的包拷贝到WEB-INF下面的lib里面,然后在Bulit Path里面引入刚才加进去的.jar包,这里其实只要选中:Web App Libraries,那么添加在刚才工程里面的lib,编译器就会自己添加进行,不用另外引入。

 

开发Wicket步骤(仅供参考):

1、编写.html文件

就是你想你的Wicket编出来的程序,通过Html能给浏览者什么样的感受,就怎么编。编的同时,注意:以前我们编静态Html,涉及交互的时候,都只是给Html控件一个id="xxx",此处,把id声明成:wicket:id="xxx",仅此而已,其它毫无变化——对画Html来说(对我来说,网页都是用Html画出来)。

2、编写.java文件

就是写后台的逻辑处理程序。就是获取到前台html控制得来的数据后,怎么样进行处理,返回什么给浏览器,或操作数据库等等。都是后台的java文件来控制的。从这里可以看出,wicket淘汰了jsp文件,这也可能是wicket的一个亮点吧,把杂交的jsp给终结了,但是凡事有利有弊,wicket的逻辑处理都放到后台java来处理,使得服务器端压力很大。不过现在的wicket支持Ajax,稍微又缓解了一下这个状况。另外wicket对javascript也是支持的,严格的说来,javascript与wicket似乎没有什么关系,因为javascript只是嵌入到html文件中的脚本程序,它的执行与否,只取决于Html的编程如何!——这是我才想到的。

值得注意一点是:.java文件与.html文件要同名,且放在同一路径下。这是有教训的。切记!!

3、编写Application程序

其实他像一个钩子样的servlet程序,因为它的内容几乎不变:

package edu.wicket.demo.user;    //打的包

import org.apache.wicket.protocol.http.WebApplication;    //引用的包

public class “ApplicationName” extends WebApplication
{
         public Class<java类文件名(无后后缀)> getHomePage()
         {
                     return java类文件名.class;
         }
}

4、配置.xml文件

其实该.xml只与前面的servlet构子程序有关,服务通过这个启动servlet程序,并通过一种同名机制运行html文件。xml的配置同样是一样的。

   <!-- 下面是关于HelloWorld的配置 --> 

  <servlet>
             <servlet-name>HelloWorldApplication</servlet-name>
             <servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class>
  <init-param>
             <param-name>applicationClassName</param-name>
             <param-value>edu.wicket.demo.hello.HelloWorldApplication</param-value>
   </init-param>
  </servlet>
             <servlet-mapping>
             <servlet-name>HelloWorldApplication</servlet-name>
             <url-pattern>/HelloWorld/*</url-pattern>   <!--这个是浏览器访问该Wicket程序的路径,调试的时候-->

                                                                                   <!--最后就只留个通配符*,便于访问-->
  </servlet-mapping> 

<!--接下来,可以在这后面继续添加wicket另外和工程,方法同上,只是对应的要改名字,且浏览路径不要重了-->

  <servlet-mapping> 

     。。。   。。。

     。。。   。。。

 </servlet-mapping> 

 

最后,再说一下Wicket在Eclipse下面的开发利器:WicketBench吧,呵呵,前面没有介绍,因为那是最笨的办法,通过这个可以了解到更深层的东西,而熟悉之后,就可以在Eclipse里面安装WicketBench的插件,就可以进行更有效率的Wicket开发了。

安装插件步骤,跟我的另一篇帖子讲的一样,只是记住WicketBench的地址就行了,另外选网速给力的时候在线安装,会比较好一点哈。

WicketBench:http://www.laughingpanda.org/svn/wicket-bench/trunk/wicket-bench-site

 

Ok,写了这么多,貌似不是初相识啊!的确呀,已经接触有几周了,一直想写,没有找到时间写,接触过后中间还有一段时间备考,所以。。。呵呵!!不过长路漫漫,Wicket到底能走多远,还有待我等&尔等努力将其发扬光大呀!!!

原创粉丝点击