`
pengsuyun
  • 浏览: 15264 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

wicket学习之WebApplication 方法internalInit

阅读更多
在应用初始化,也就是WicketFilter初始化的时候,会调用WebApplication的internalInit()(先调用父类的internalInit(),完成初始化资源)完成系统资源的初始化
下面对WebApplication的internalInit()进行解析:
首先调用Application的internalInit()
1、初始化pageSettings
// Install default component resolvers(component resolvers:实现component的展示)
pageSettings.addComponentResolver(new ParentResolver());
pageSettings.addComponentResolver(new AutoComponentResolver());
pageSettings.addComponentResolver(new MarkupInheritanceResolver());
pageSettings.addComponentResolver(new HtmlHeaderResolver());
pageSettings.addComponentResolver(new WicketLinkResolver());
pageSettings.addComponentResolver(new WicketMessageResolver());
pageSettings.addComponentResolver(new WicketMessageTagHandler());
pageSettings.addComponentResolver(new FragmentResolver());
pageSettings.addComponentResolver(new RelativePathPrefixHandler());
pageSettings.addComponentResolver(new EnclosureResolver());
pageSettings.addComponentResolver(new WicketContainerResolver());
pageSettings.addComponentResolver(new BorderBodyResolver());

2、设置ButtonImageResourceFactory
// Install button image resource factory
getResourceSettings().addResourceFactory("buttonFactory",new DefaultButtonImageResourceFactory());

3、保存当前的WebApplication到Application的属性Map<String, Application> applicationKeyToApplication
String通常为Filter的name
String applicationKey = getApplicationKey();
applicationKeyToApplication.put(applicationKey, this);

4、创建sessionStore(The actual store that is used by org.apache.wicket.Session to store its attributes.)
sessionStore = newSessionStore();

5、创建converterLocator(Implementation of {@link IConverterLocator} interface, which locates converters for a given type.)
converterLocator = newConverterLocator();
例如:set(Boolean.TYPE, BooleanConverter.INSTANCE);

至此Application的internalInit()结束

WebApplication的internalInit()的其他部分:
1、设置出错页面
// Set default error pages for HTML markup
getApplicationSettings().setPageExpiredErrorPage(PageExpiredErrorPage.class);
getApplicationSettings().setInternalErrorPage(InternalErrorPage.class);
getApplicationSettings().setAccessDeniedPage(AccessDeniedPage.class);

2、// Add resolver for automatically resolving HTML links
getPageSettings().addComponentResolver(new AutoLinkResolver());

3、// Set resource finder to web app path
getResourceSettings().setResourceFinder(getResourceFinder());

4、提供客户化的配置,提供另外的路径,寻找文件,(不支持自动匹配子目录)
// Add optional sourceFolder for resources.
String resourceFolder = getInitParameter("sourceFolder");
if (resourceFolder != null)
{
getResourceSettings().addResourceFolder(resourceFolder);
}
5、// Configure the app.
主要针对开发环境和部署环境进行app的设置,下面的设置可以在WebApplication的init方法中作相应的改动
下面是针对开发环境的一段部署代码:
        getResourceSettings().setResourcePollFrequency(Duration.ONE_SECOND);
  getDebugSettings().setComponentUseCheck(true);
  getMarkupSettings().setStripWicketTags(false);
  getExceptionSettings().setUnexpectedExceptionDisplay(
IExceptionSettings.SHOW_EXCEPTION_PAGE);
  getDebugSettings().setAjaxDebugModeEnabled(true);
  getDebugSettings().setDevelopmentUtilitiesEnabled(true);
  // getDebugSettings().setOutputMarkupContainerClassName(true);
  getResourceSettings().setJavascriptCompressor(null);
getRequestCycleSettings().addResponseFilter(EmptySrcAttributeCheckFilter.INSTANCE);

分享到:
评论

相关推荐

    实战wicket学习总结

    【实战Wicket学习总结】 Wicket是一个Java Web应用程序框架,以其独特的组件模型和强大的MVC设计而备受赞誉。本文将基于三年的Wicket项目经验,深入探讨Wicket的关键特性和在实际开发中遇到的问题及解决方案。 1. ...

    wicket7教程

    Apache Wicket是一个为Java Web开发者提供的组件导向的框架,它能够帮助开发者在不编写大量JavaScript代码的情况下快速...通过学习本教程,Java开发者可以有效地掌握Wicket框架,开发出结构清晰、易于维护的Web应用。

    Wicket源码初读

    然后是`WebApplication InternalInit.txt`,WebApplication是每个Wicket应用的主入口点,它继承自Application类。InternalInit方法通常包含一些内部初始化操作,如注册组件、资源、行为等。通过阅读这部分代码,我们...

    wicket学习

    2. **Application启动**:通过`WebApplication`的子类启动Wicket应用,通常在`ServletContextListener`的`contextInitialized()`方法中完成。 #### 五、小结 Wicket框架通过其简洁的设计理念、强大的组件系统以及...

    wicket的helloworld

    **Wicket HelloWorld程序详解** ...Wicket的强大之处在于它的组件模型和强大的数据绑定机制,使得开发动态、交互性强的Web应用变得更加简单和直观。对于初学者来说,理解这些基础知识是进一步学习Wicket的关键。

    wicket指南

    **Wicket 指南** ...无论你是初学者还是经验丰富的开发者,都可以通过学习Wicket来提升Web应用程序的开发效率和质量。阅读《Wicket开发指南-简体版.pdf》将进一步帮助你掌握这个框架的精髓和实践技巧。

    wicket 官方JAVA教程

    **Wicket官方JAVA教程** Wicket是一款开源的Java Web应用程序框架,它强调组件化和声明式编程模型,使得开发人员...在实际开发过程中,了解并熟练运用这些库中的类和方法,能够更好地发挥Wicket的优势,提高开发效率。

    wicket-menu-6.5.0.zip

    通过分析和学习“wicket-menu-6.5.0.zip”中的源代码,开发者不仅可以掌握如何在Wicket中构建动态菜单,还可以学习到如何将这一技术应用到自己的项目中,提升用户体验。同时,开源的性质意味着可以借鉴社区的最佳...

    wicket 基础知识培训

    Wicket 是一个开源的Java Web框架,用于构建可重用且易于维护的Web应用程序。它以其组件模型和数据绑定机制而闻名,与Struts等传统MVC框架相比,提供了更直观和面向对象的编程方式。 在Wicket基础知识培训中,首先...

    Wicket.pdf(Wicket开发指南)

    Wicket 作为一种先进的 Java Web 开发框架,不仅提供了丰富的功能和组件库,而且拥有较低的学习曲线,非常适合希望快速构建高质量 Web 应用的开发者。无论是对于初学者还是经验丰富的开发人员来说,掌握 Wicket 都将...

    apacke-wicket-mvn编译

    使用这个版本,开发者可以了解和学习Wicket 6.x系列的特性和使用方法,同时也可以直接在项目中引用这些库文件进行开发。 总结来说,这个压缩包提供了一个使用Apache Maven构建的Apache Wicket项目,版本为6.16.0。...

    wicket开发指南 pdf

    Wicket 与其他Web框架的不同之处在于它采用了组件驱动的开发模式。每个HTML元素都可以与Java对象对应,这些对象称为组件,它们负责处理用户的交互事件和呈现页面。这种设计使得Wicket能够轻松地实现页面状态管理,...

    wicket相关书籍

    通过实例和代码片段,读者可以学习到如何利用 Wicket 的特性来构建高效、可维护的Web应用。 其次,"Pro Wicket" 是 Apress 出版的一本全面介绍 Wicket 框架的专业著作。这本书不仅深入介绍了 Wicket 的基本概念,如...

    创建基于wicket的web服务入门实例

    创建基于wicket的web服务入门实例

    wicket简单实例

    这个“wicket简单实例”是为了帮助初学者理解Wicket的工作原理和基本操作,通过运行这些示例,你可以深入学习Wicket的核心特性。 1. **Wicket_link**: 这个示例展示了如何在Wicket应用中创建链接。Wicket的`Link`...

    Wicket开发指南-简体版

    随着技术的不断进步,Wicket也在不断发展和完善,未来有望成为更多开发者的首选框架之一。 #### 二、Wicket的配置与入门 **2.1 安装Wicket自带的例子程序** 安装Wicket示例程序可以帮助新手快速了解框架的基本...

    wicket常用控件使用方法

    ### Wicket常用控件使用方法详解 #### 一、引言 Wicket是一个灵活而强大的Java Web框架,它提供了一套简洁高效的API用于构建复杂的Web应用程序。与.NET平台的开发方式相似,Wicket允许开发者在HTML页面中声明控件,...

Global site tag (gtag.js) - Google Analytics