创建并扩展Apache Wicket Web应用
2010-06-30 00:00:00 来源:WEB开发网WicketStuff注解
这个软件包提供了智能的装载机制,利用@MountPath类注解和AnnotatedMountScanner工具类可以简化Wicket网页的添加和注册。从清单6和清单7可以看到,配置非常简单。
清单6:WicketStuff AnnotatedMountScanner的使用示例。
// package和import信息
public class WicketApplication extends WebApplication {
public Class getHomePage() {
return HomePage.class;
}
@Override
protected void init() {
super.init();
new AnnotatedMountScanner().scanPackage("com.example.modular.**.pages").mount(this);
}
}
Wicketstuff-annotations项目使用Sping框架的 PathMatchingResourcePatternResolver来查找classpath中匹配的资源。在上面的例子里,解析器会扫描 com.example.modular包里所有的“pages”子包,找到所有使用@MountPath注解的类。
清单7:WicketStuff @MountPath注解的使用示例。
package com.example.modular.warsaw.pages;
import org.apache.wicket.markup.html.WebPage;
import org.wicketstuff.annotation.mount.MountPath;
@MountPath(path = "warsaw")
public class WarsawPage extends WebPage {
// 现在不需要什么内容
}
借助这一技术,我们在Warsaw和Global项目中都能定义并装载Web页面。Maven的WAR插件确保部署的Global能包含这些类,目录结构与Warsaw的保持一致。即使Web页面位于不同的包里,比如com.example.modular.warsaw.pages和 com.example.modular.global.pages,AnnotatedMountScanner也能确保正确装载了网页。但我们要是在 Global项目的com.example.modular.warsaw.pages包里新建一个Web页面,会发生什么呢?这种情况存在风险,就是该页面会覆盖Warsaw项目里定义的同名页面。反过来说,这种做法却有助于我们从Global项目级别修改Warsaw项目的组件。
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››扩展WebSphere Portal V6个性化功能
- ››创建一个Twisted Reactor TCP服务器
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››创建Windows Mobile上兼容性好的UI 程序
赞助商链接