`

Wicket用户手册:能够处理用户输入的HelloWorld

阅读更多

接下来的这个例子将会教会大家使用Wicket开发一个能够处理用户输入的程序,这个程序虽然简单,但也基本上描述了如何使用Wicket处理用户的输入。

我们会修改上面的的例子,增加处理用户输入的功能。也就是在页面上显示一个文本框,以用户 输入数据,并提交到服务器,再将用户 输入的信息显示在页面上。

这是HTML模板文件

<html>  <body>    <span wicket:id="message">Message goes here</span>    <form wicket:id="messageInputForm">    	<input type="text" wicket:id="messageInput"/>    	<input type="submit" value="update"/>    </form>  </body></html>  

在上面的模板文件中,我们看到了三个标签,他们分别是:"message","messageInputForm","messageInput",除了上一个例子里面的Label控件之外,我们现在 又多了一个Form和一个Input控件,接下来的代码,显示如何使用 这两个控件。

相应的Java代码

package mypackage;import wicket.markup.html.WebPage;import wicket.markup.html.basic.Label;import wicket.markup.html.form.Form;import wicket.markup.html.form.TextField;import wicket.model.IModel;import wicket.model.Model;public class HelloWorld extends WebPage{  public HelloWorld()  {    IModel messageModel = new Model("Hello World!");    add(new Label("message", messageModel));    add(new MessageForm("messageInputForm", messageModel));  }  private final class MessageForm extends Form  {    public MessageForm(String id, IModel model)    {      super(id);      add(new TextField("messageInput", model));    }    protected void onSubmit()    {      // nothing to do here as the model is automatically updated    }  }}  

你可能首先注意到控件是可以嵌套的。MessageForm是一个Form控件,它和message所代表的Label控件是兄弟关系,都在HelloWorld这个页面控件内部。作为兄弟,它们的ID号必须唯一,否则它们的父母就无法准确的区分它们。而messageInput这个TextField控件则作为messageForm控件的孩子,它的作用域是限于 messageForm内部,所以messageInput控件在模板中的标签也嵌套在messageForm内部。

接下来要了解一个如何使用 Model对象。象上文提到的,每一个Wicket控件都会有一个Model。至于如何这个Model,哈哈,就由控件自己说了算。接下来文章将会告诉你如何使用Model。正如前面提到的,每个Wicket控件都会有一个Model,象Label控件就会使用Model提供的的信息输出,而一个列个控件ListView就会使用 java.util.List作为模型数据,并循环遍历这些数据(译注:其实使用的是Model.getModelObject()),Wicket提供了wicket.model.IModel这个接口,只要实现了这个接口 ,就可以作为一个Model被Wicket控件所使用 。

为了处理用户输入,必须使用Form控件。Form控件可以根据用户 的输入自动将Form内部嵌套的控件进 行自动更新。它会逐个调用内部控件的setObject()方法来更新控件的数据。因此当一个用户点击了Submit按钮后,Wicket会自动更新控件中的值。象上面的例子,Label控件和TextField文本控件使用 的是同一个Model,因此当TextField输入控件更新后,Label的输出也会自动更新(译注:这也从另外一个方面说明Wicket是基于Stateful的)。



评论
1 楼 judychang 2006-11-08  
这篇文章全文阅读过。写的浅显易懂,对于初学wicket的程序员来说是不错的参考资料。但是对于更进一步的使用有些不足。希望能够尽快地看到本文的后续篇。期待中。

个人认为wicket是一个比较好的框架,易于使用,易于理解,也许是习惯swing开发的原因。很想在工作中使用这个框架,但是说服领导的工作,比学习新框架困难得多,郁闷中。

不过还是支持wicket.

相关推荐

    wicket的helloworld

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

    Wicket 1.4 开发手记(一) helloworld与环境配置

    ### Wicket 1.4 开发手记:Hello World与环境配置 #### 一、引言 在《Wicket 1.4 开发手记》系列的第一篇文章中,作者Steel.Ma分享了他对Wicket框架的一些见解,特别是针对Wicket 1.4版本的入门级介绍。文章首先对...

    wicket_examples:wicket_examples

    **Wicket Hello World** "Hello World" 示例通常是最简单的应用程序,用于介绍框架的基本使用。在Wicket 中,创建一个"Hello World" 页面涉及以下步骤: 1. 创建一个继承自`WebPage` 的Java 类,这个类代表你的...

    wicket国际化例子

    2. **动态参数的处理**:与`&lt;wicket:message&gt;`标签类似,`StringResourceModel`也可以处理动态参数。以下代码展示了如何将动态参数插入到本地化字符串中: ```java StringResourceModel model = new ...

    Wicket.pdf(Wicket开发指南)

    - **低学习曲线:** 相比其他框架,Wicket 提供了一个更直观的 API 和简洁的文档,使得新用户能够快速上手。 - **规则配置:** 减少了对 XML 配置文件的依赖,简化了开发流程。 - **Ajax 支持:** 内置了对 Ajax ...

    wicket例子和开发指南

    6. 表单处理:介绍Wicket处理用户输入表单的方式,包括验证和提交逻辑。 7. 国际化和本地化:如何支持多语言,提供不同地区的用户体验。 8. AJAX支持:Wicket提供了内置的AJAX功能,让动态交互变得更简单。 9. 继承...

    wicket简单实例

    `TextField`组件用于创建输入字段,让用户输入文本。你可以指定输入字段的类型,如文本、数字等,并可以绑定到模型对象,方便数据的获取和验证。 5. **Wicket_guestbook**: 这是一个常见的Web应用示例,它展示了...

    wicket-presentation:Apache Wicket演示文稿的源代码-apache source code

    掌握如何利用`Form`和`FormComponent`处理用户输入;以及如何通过`Localizer`进行国际化。此外,还可以学习如何利用Maven或其他构建工具管理项目,以及如何将Wicket与Spring、Hibernate等其他流行框架集成。 总之,...

    wicket-todo:用 wicket 做 todo

    7. **路由配置**:配置Wicket的URL映射,确保用户能够通过特定URL访问`TodoListPage`。 8. **测试和优化**:编写单元测试和集成测试,确保功能正确无误。优化页面性能,如使用分页和缓存策略,提高用户体验。 9. *...

    Wicket开发指南

    - **“Hello World”案例**:从简单的“Hello World”应用开始,逐步了解Wicket的基本工作流程。 - **Wicket应用开发步骤**: - **创建HTML模板**:定义应用程序的界面布局。 - **编写Java控制逻辑**:实现业务...

    wicket指南

    3. **表单组件**:如`TextField`、`ChoiceRenderer`、`CheckBox`、`RadioButton`等,用于处理用户输入。 4. **容器组件**:如`WebMarkupContainer`,可以包含其他组件,实现布局管理。 5. **反馈组件**:如`Feedback...

    wicket-js:wicket-js 使在 Wicket 组件和行为中编写和处理自定义 JavaScript 和 jQuery 变得容易

    wicket-js 使在组件和行为中编写和处理自定义 JavaScript 和变得容易。 它有助于将 Wicket Ajax Behavior 侦听器与实际客户端 UI 功能分开,同时保持与 Wicket 组件的耦合。 它提供了一个(基本的),允许您在 ...

    Wicket开发指南-简体版

    - **事件驱动结构**:介绍了Wicket如何通过事件驱动来处理用户交互。 - **如何调用Listener**:解释了监听器在处理事件中的作用。 **4.5 Wicket如何处理用户请求** 阐述了Wicket接收和处理HTTP请求的具体机制。 *...

    wicket-handlebars:提供一些专门的面板和一些相关的实用程序,使用户能够使用 Handlebars.js 和 Apache Wicket

    小胡子提供一个专门的面板和一些相关的实用程序,使用户能够使用 Mustache 和 Apache Wicket。 当前构建状态: wicket-mustache取决于 。 文档:通过所有mustache模空白差异添加maven依赖: &lt; dependency&gt; ...

    java-wicket手册(chm)

    有关wicket开发的api手册。chm版本,方便,全面,准确。

    wicket开发指南

    阅读《Wicket开发指南》PDF,你将逐步了解如何搭建Wicket环境,创建第一个应用,使用组件,处理用户输入,以及如何优化和扩展Wicket应用。这份指南对于想要进入Wicket世界的新手来说是一份宝贵的资源。

    wicket-kurs:使用 Spring 进行 Wicket 课程的基本起点

    Apache Wicket 是一个基于组件的 MVC(模型-视图-控制器)Web 应用框架,它通过组件和页面来实现用户界面。而 Spring 是一个全面的企业级应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)以及用于构建 Web ...

Global site tag (gtag.js) - Google Analytics