`
David_Chen
  • 浏览: 9861 次
文章分类
社区版块
存档分类
最新评论
  • antonyup_2006: 这样条理清晰的知识点挺好的,笔记一样!便于查询,今天发现set ...
    wicket
阅读更多

1.wicket中的html页面控制类需要和页面文件的路径和名称相关联,也就是说它们是按照wicket中定好的规则进匹配的,而且每个控制html页面控制类必须继承wicket.markup.html.WebPage类,如com.david.chen.sample中的HelloPage.java是用于控制com.david.chen.sample中的HelloPage.html的;wicket中的每个组件的ID不能相同,就是ID号只能对应页面模板中的一个相应的控件,而不能对应两个或更多。

2.Model是用来给控件提供数据和显示内容的,用户可以自定义model的实现,必须继承wicket.model.IModel接口,Model并不代表真正的数据类型,它只提供模型层的对外接口,外部对象要通过getObject来取得真正的数据,然后进行相应的处理。
Application对象用于在系统管理相关的配置,是系统的关键。Application对象控制类文件的名称不存在默认的规则限制,只需要在web.xml中配置好就可以了。

3.wicket的事件驱动模式,由存在于B/S客户端的控件输入提交的URL并指明Listener的类型,由服务器根据

4.Listener的类型调用相应的方法。IRequestListerner是Listener的基接口。

5. wicket提供了一个ISessionStore并为其提供了一个默认实现HttpSessionStore,用于将控件的相关信息及Model保存在HttpSession中,做有效的状态管理。用户请求结果的Page会被放到一个PageMap对象中由ISessionStore保存,wicket提供PageMap的一个管理策略接口wicket.session.pagemap.IPageMapEvictionStrategy,可以通过这个接口来设置PageMap的存放数量,用WebApplication的getSessionSetting来取得和设置这个策略的实现,默认情况下PageMap可以存放5个Page对象.

6.wicket的html输出会对"<>"进行自动转义,如果需要输出"<>"符合,需要调用setEscapeModelStrings(false);Label对象可以输出字符串或任意对象,如果是对象是则调用对象的toString()方法输出信息。

7.MutiLineLable可以对"\n"进行自动转换,转换为
。wicket的include控件只能包含静态页面。

8.wicket的表单验证应该说和Struts大同小异,还不支持客户端验证,所以要使用Ajax进行验证或Wicket-Stuff。

9.wicket中的checkBoxMutipleChoice,RadioChoice等控件不能直接输出名称只能显示值,采用IChoiceRender接口可以解决这个问题。

10.wicket中的DatePicker存在于wicket-extensions包中,所以Web程序的lib中要包含该包。

11.wicket中的Ajax应用,先通过普通的wicket应用在客户端输出HTML(HTML元素需要带有wicket:id属性),软化由浏览器端向远程服务器发出Ajax请求,然后在服务器将相应的wicket控件输出为HTML,当浏览器端的Js程序收到相应的Html后,就根据wicket:id覆盖原有的HTML元素。

12.wicket提供了一个IAuthorizationStrategy接口用来处理权限问题。wicket为IAuthorization提供了一个默认的ALLOW_ALL实现,它默认支持所以的操作。用户如果要进行权限控制,只需要实现这个接口,然后通过Application的ISecuritySetting来注入,这样wicket在每个控件输出时,调用isActionAuthorized反复检查Renderer和Enabled是否允许执行。

13.wicket中的css样式文件应该放置在根目录。

14.在session中存储对象,需要继承wicket的session接口。
public class MySession extends WebSession {
   public MySession(WebApplication application) {
      super(application);
   }
   private String myAttribute;
   // ... getters and setters
   //把需要加到session的对象加入到这里并提供getter,setter
}
在Application类中重写以下两个方法
protected ISessionFactory getSessionFactory() {
    return this.sessionFactory;
}
public Session newSession() {
    return new MySession(WebApplication.this);
}


15.将wicket中的页面统一放置和管理的处理办法
首先定义一个IResourceStreamLocator的类:

public class WebPageResourceStreamLocator extends AbstractResourceStreamLocator {
    private IResourceFinder finder;

    public WebPageResourceStreamLocator(IResourceFinder finder) {
        this.finder = finder;
    }

    protected IResourceStream locate(final Class clazz, final String path) {
        final URL file = finder.find(trimFolders(path));
        if (file != null) {
            return new UrlResourceStream(file);
        }
        return null;
    }

    private String trimFolders(String path) {
        return path.substring(path.lastIndexOf("/") + 1);
    }
}
然后, 重写Application.init()方法并加入新的IResourceStreamLocator:

public class CizelgemApplication extends AuthDataApplication {
    @Override
    protected void init() {
        super.init();
        CompoundResourceStreamLocator locator =
            (CompoundResourceStreamLocator)getResourceSettings().getResourceStreamLocator();
        WebApplicationPath resourceFinder = (WebApplicationPath) getResourceSettings

().getResourceFinder();
        resourceFinder.add("src/main/webapp"); //this path should be changed

        locator.add(0, new WebPageResourceStreamLocator(resourceFinder));
    }

16.button的setDefaultFormProcessing(false)方法可以在表单提交的时候只调用button的onSubmit方法,

当true的情况将先调用form的onSubmit方法再调用button的onSubmit方法,默认为true。

17.FeedbackMessage进行筛选和排列显示的顺序,可以通过设置FeedbackPanel的sortingComparator属性或者,提供一个重写了FeedbackPanel.getFeedbackMessageModel()的FeedbackMessagesModel实现。

String contextPath = getApplication().getApplicationSettings().getContextPath();
   
getRequestCycle().setRequestTarget(new RedirectRequestTarget(contextPath +

"/path/to/legacyJspFile.jsp"));
可以定位到不属于wicket应用上的页面和资源。

18.wicket properties文件,包括Application的properties文件和单页面的properties文件,在

Application.properties中配置的信息是全局的配置信息,单页面的properties信息只对该页面有效,如

果该页面没有配置单页面properties信息则再转到Application.properties中查找,当单页面的

properties存在多个时,根据系统的语言选择相应的properties文件。

分享到:
评论
1 楼 antonyup_2006 2008-03-03  
这样条理清晰的知识点挺好的,笔记一样!便于查询,今天发现setDefaultFormProcessing()不太清楚来这一看大概就清楚了 ,够快的检索!

相关推荐

    wicket指南

    **Wicket 指南** **一、Wicket 框架概述** Wicket 是一个开源的、基于组件的 Java Web 开发框架,它提供了一种简单而强大的方式来构建动态、交互性强的Web 应用程序。Wicket 的设计哲学是将Web 页面的视图与业务...

    Wicket.pdf(Wicket开发指南)

    ### Wicket 开发指南知识点概览 #### 一、Wicket 框架介绍 - **框架起源与发展:** - Wicket 是一种基于 Java 的 Web 应用框架,最初由 Marc Guillemot 和 Eelco Hillenius 开发。 - 该框架首次公开发布是在 ...

    apacke-wicket-mvn编译

    【标题】:“apacke-wicket-mvn编译”指的是使用Apache Maven构建工具来编译一个基于Apache Wicket的项目。Apache Wicket是一款开源的Java Web应用框架,它以组件为基础,提供了丰富的功能来帮助开发者创建动态、...

    wicket_mvn库

    **Wicket Maven 库详解** Wicket Maven 库是一个针对 Apache Wicket 框架的 Maven 存储库,它包含了构建和运行 Wicket 应用程序所需的各种依赖项。Apache Wicket 是一个用于创建 Web 应用程序的开源 Java 框架,它...

    wicket国际化例子

    在本文中,我们将深入探讨Wicket框架中的国际化(i18n)实现,以及如何使用`wicket:message`和`StringResourceModel`等工具来读取`.properties`资源文件。Wicket是一个流行的Java web应用程序框架,它提供了强大的...

    wicket 基础知识培训

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

    wicket的helloworld

    **Wicket HelloWorld程序详解** Wicket是一个开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。这个“Wicket的HelloWorld”程序是初学者入门Wicket的典型例子,它展示了如何利用...

    wicket例子和开发指南

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得Web应用的构建更为简单和直观。这个压缩包包含了一个Wicket的开发指南PDF文档以及一些示例项目,这些都是学习和掌握Wicket框架的重要...

    wicket的tree的简单实例

    在本文中,我们将深入探讨Wicket框架中关于Tree组件的简单使用方法,这对于初学者来说是一份极好的学习资源。Wicket是一个强大的Java Web应用程序框架,它提供了丰富的组件库,其中包括用于显示层次结构数据的Tree...

    wicket1.4.7中的jar包

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得开发者能够创建交互性强、用户体验良好的Web应用。在Wicket 1.4.7版本中,包含了一系列的jar包,这些jar包是构建和运行基于Wicket的...

    wicket文档

    ### Wicket文档知识点详解 #### 1. Wicket简介 **1.1 Wicket前生后世篇** Wicket是一款开源的Java Web应用框架,它最初由Geert Bevin在2003年创建。其设计理念是提供一种简单、直观的方式来构建复杂的Web应用程序...

    apache-wicket-7

    Apache Wicket 是一个开源的Java Web应用程序框架,它专注于提供简单、声明式、以及组件化的Web开发模型。在“apache-wicket-7”这个主题中,我们主要关注的是Wicket框架的第七个主要版本,即7.0.0-M3。这个版本是一...

    wicket 官方JAVA教程

    **Wicket官方JAVA教程** Wicket是一款开源的Java Web应用程序框架,它强调组件化和声明式编程模型,使得开发人员可以构建出用户界面更加灵活且易于维护的Web应用。本教程将深入探讨Wicket的核心概念、特性以及如何...

    wicket开发指南 pdf

    **Wicket 开发指南** Wicket 是一个开源的、基于Java的Web应用程序框架,它以其组件化、模型-视图-控制器(MVC)架构和轻量级特性而受到开发者们的青睐。本指南将深入探讨Wicket的核心概念、工作原理以及如何有效地...

    Wicket开发指南-简体版

    ### Wicket开发指南核心知识点概览 #### 一、Wicket简介 **1.1 Wicket的历史与发展** Wicket是一个开源的Java Web应用框架,它借鉴了ASP.NET的设计理念,但又具有自己的特色。该框架的目标是提高开发效率并简化...

    Wicket1.40.war包+开发指南.rar

    **Wicket框架详解** Wicket是一款开源的Java Web应用程序框架,它强调了组件化和模型-视图-控制器(MVC)的设计模式。Wicket 1.4.0是该框架的一个版本,提供了丰富的功能和改进,使得Web开发更为简便。在本篇文章中...

Global site tag (gtag.js) - Google Analytics