这是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的)。
相关推荐
**Wicket HelloWorld程序详解** Wicket是一个开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。这个“Wicket的HelloWorld”程序是初学者入门Wicket的典型例子,它展示了如何利用...
### Wicket 1.4 开发手记:Hello World与环境配置 #### 一、引言 在《Wicket 1.4 开发手记》系列的第一篇文章中,作者Steel.Ma分享了他对Wicket框架的一些见解,特别是针对Wicket 1.4版本的入门级介绍。文章首先对...
**Wicket Hello World** "Hello World" 示例通常是最简单的应用程序,用于介绍框架的基本使用。在Wicket 中,创建一个"Hello World" 页面涉及以下步骤: 1. 创建一个继承自`WebPage` 的Java 类,这个类代表你的...
2. **动态参数的处理**:与`<wicket:message>`标签类似,`StringResourceModel`也可以处理动态参数。以下代码展示了如何将动态参数插入到本地化字符串中: ```java StringResourceModel model = new ...
- **低学习曲线:** 相比其他框架,Wicket 提供了一个更直观的 API 和简洁的文档,使得新用户能够快速上手。 - **规则配置:** 减少了对 XML 配置文件的依赖,简化了开发流程。 - **Ajax 支持:** 内置了对 Ajax ...
6. 表单处理:介绍Wicket处理用户输入表单的方式,包括验证和提交逻辑。 7. 国际化和本地化:如何支持多语言,提供不同地区的用户体验。 8. AJAX支持:Wicket提供了内置的AJAX功能,让动态交互变得更简单。 9. 继承...
`TextField`组件用于创建输入字段,让用户输入文本。你可以指定输入字段的类型,如文本、数字等,并可以绑定到模型对象,方便数据的获取和验证。 5. **Wicket_guestbook**: 这是一个常见的Web应用示例,它展示了...
掌握如何利用`Form`和`FormComponent`处理用户输入;以及如何通过`Localizer`进行国际化。此外,还可以学习如何利用Maven或其他构建工具管理项目,以及如何将Wicket与Spring、Hibernate等其他流行框架集成。 总之,...
7. **路由配置**:配置Wicket的URL映射,确保用户能够通过特定URL访问`TodoListPage`。 8. **测试和优化**:编写单元测试和集成测试,确保功能正确无误。优化页面性能,如使用分页和缓存策略,提高用户体验。 9. *...
- **“Hello World”案例**:从简单的“Hello World”应用开始,逐步了解Wicket的基本工作流程。 - **Wicket应用开发步骤**: - **创建HTML模板**:定义应用程序的界面布局。 - **编写Java控制逻辑**:实现业务...
3. **表单组件**:如`TextField`、`ChoiceRenderer`、`CheckBox`、`RadioButton`等,用于处理用户输入。 4. **容器组件**:如`WebMarkupContainer`,可以包含其他组件,实现布局管理。 5. **反馈组件**:如`Feedback...
wicket-js 使在组件和行为中编写和处理自定义 JavaScript 和变得容易。 它有助于将 Wicket Ajax Behavior 侦听器与实际客户端 UI 功能分开,同时保持与 Wicket 组件的耦合。 它提供了一个(基本的),允许您在 ...
- **事件驱动结构**:介绍了Wicket如何通过事件驱动来处理用户交互。 - **如何调用Listener**:解释了监听器在处理事件中的作用。 **4.5 Wicket如何处理用户请求** 阐述了Wicket接收和处理HTTP请求的具体机制。 *...
小胡子提供一个专门的面板和一些相关的实用程序,使用户能够使用 Mustache 和 Apache Wicket。 当前构建状态: wicket-mustache取决于 。 文档:通过所有mustache模空白差异添加maven依赖: < dependency> ...
有关wicket开发的api手册。chm版本,方便,全面,准确。
阅读《Wicket开发指南》PDF,你将逐步了解如何搭建Wicket环境,创建第一个应用,使用组件,处理用户输入,以及如何优化和扩展Wicket应用。这份指南对于想要进入Wicket世界的新手来说是一份宝贵的资源。
Apache Wicket 是一个基于组件的 MVC(模型-视图-控制器)Web 应用框架,它通过组件和页面来实现用户界面。而 Spring 是一个全面的企业级应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)以及用于构建 Web ...