创建并扩展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设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››创建SQL2005自动备份,定期删除的维护计划
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››创建动态表单 javascript
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Apache2.2与Tomcat6整合及虚拟主机配置
更多精彩
赞助商链接