Wicket初次接触2之Navomatic
2008-01-05 08:53:43 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

喵。猫咪又来把自己Blog上的文章转到这里来了。欢迎大家访问猫咪的Blog。地址是:http://blog.sina.com.cn/u/1400658603
猫咪这几天上网搜索了一下。发现Wicket已经有了Eclipse插件了,叫Wicket Bench。不过我试用了一下。发现假如直接使用Wicket Bench建立工程,无法自动部署(也许是有办法,但是我没找到)。而且似乎还有些毛病,总是提示找不到Wicket的包文件。有可能是我设置哪里不对吧。不过用来建立WebPage还是相当好用的。Wicket Bench没办法直接下载,把http://www.laughingpanda.org/svn/wicket-bench/trunk/wicket-bench-site加入Eclipse的升级站点后运行就可以了。
还有,因为Wicket不需要jsp来显示网页,所以IDE本身只要能支持自动部署和Html编辑就可以了。猫咪现在推荐使用Eclipse+WTP+Wicket Bench来编写。和MyEclipse相比,不需要缴纳任何费用,而且全中文(WTP也有自己的中文包。而MyEclipse使用时,即使Eclipse中文包安装了,也只能用英文界面,不然就有可能出错)。假如需要编写Hibernate和SPRing,可以再添加Hibernate和Spring专用插件。
好了,这次我们来个稍微复杂一点的,做一个自定义导航条。这次猫咪改用Eclipse+WTP+Wicket Bench来写。
制作导航条这个自定义组件,需要继续wicket.markup.html.border.Border这个类。而且还要做一个模版页面。
我们首先来看一下模版页面的设计。下面就是一个自定义导航条的模版:
<html>
<body>
<wicket:border>
First <wicket:body/> Last
</wicket:border>
</body>
</html>
其中<wicket:border></wiecket:border>之间的就是导航条的具体内容。格式你可以随便组合。<wicket:body/>标签,表示具体每个使用导航条的页面要显示的文字部分。比如具体页面如下:
<html>
<body>
<span wicket:id = "myBorder">
Middle
</span>
</body>
</html>
那么显示出来就是:
<html>
<body>
First Middle Last
</body>
</html>
“First”和“Last”是模版中的文字,“Middle”是具体网页中的文字。显示的是二者的组合。
好了,现在我们开始编写这个导航条。打开Eclipse,新建一个动态Web工程。建立工程后,首先是建立控制器,Navomaticapplication.class。代码如下:
package wicket.examples.navomatic;
import wicket.protocol.http.WebApplication;
public class NavomaticApplication extends WebApplication{
public Class getHomePage(){
return Page1.class;
}
}
然后调整web.xml文件,把这个类加进去。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>NavomaticApplication</servlet-name>
<servlet-class>wicket.protocol.http.WicketServlet</servlet-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>wicket.examples.navomatic.NavomaticApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>NavomaticApplication</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
</web-app>
现在我们开始编写导航条控件。制作自定义控件和asp.net差不多,包括一个处理类和一个网页模版。首先建立导航条类NavomaticBorder.class。这个类需要继续wicket.markup.html.border.Border类。在类的构造函数中,添加两个BoxBorder控件。这两个控件如何放置,则是模版文件的工作。类具体代码如下:
package wicket.examples.navomatic;
import wicket.markup.html.border.Border;
import wicket.markup.html.border.BoxBorder;
public class NavomaticBorder extends Border{
public NavomaticBorder(String arg0){
super(arg0);
add(new BoxBorder("navigationBorder"));
add(new BoxBorder("bodyBorder"));
}
}
赞助商链接