`
icess
  • 浏览: 251288 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Wicket 教程4:如何使用Form 和form组件 2

阅读更多
下面来看一个复杂一点的例子: 使用选择框
java code:
final CheckGroup group = new CheckGroup("group", new ArrayList());
           Form form = new Form("form") {
                 protected void onSubmit() {
                       info("selected person(s): " + group.getModelObjectAsString());
                 }
           };

           add(form);
           form.add(group);
           group.add(new CheckGroupSelector("groupselector"));
           ListView persons = new ListView("persons", getPersons()) {

                 protected void populateItem(ListItem item) {
                       item.add(new Check("checkbox", item.getModel()));
                       item.add(new Label("name", new PropertyModel(item.getModel(),
                                   "name")));
                       item.add(new Label("lastName", new PropertyModel(item
                                   .getModel(), "lastName")));
                 }

           };

           group.add(persons);
           //multiCheckForm
           
           final Input input = new Input();
           Form multiCheckForm = new Form("multiCheckForm",new CompoundPropertyModel(input))
           {
                 protected void onSubmit()
                 {
                       info("input: " + input);
                 }
           };
           add(multiCheckForm);

           // add a couple of checkbox multiple choice components, notice the model
           // used is a compound model set on the page
           CheckBoxMultipleChoice listChoice = new CheckBoxMultipleChoice("sites", SITES);
           multiCheckForm.add(listChoice);

           listChoice = new CheckBoxMultipleChoice("choices", MANY_CHOICES);
           multiCheckForm.add(listChoice);
           
           // radio group
           final RadioGroup radioGroup = new RadioGroup("radioGroup", new Model());
           Form radioGroupForm = new Form("radioGroupForm")
           {
                 protected void onSubmit()
                 {
                       info("selected person: " + radioGroup.getModelObjectAsString());
                 }
           };

           add(radioGroupForm);
           radioGroupForm.add(radioGroup);

           ListView persons2 = new ListView("persons2", getPersons())
           {

                 protected void populateItem(ListItem item)
                 {
                       item.add(new Radio("radio", item.getModel()));
                       item.add(new Label("name", new PropertyModel(item.getModel(), "name")));
                       item.add(new Label("lastName", new PropertyModel(item.getModel(), "lastName")));
                 }

           };

           radioGroup.add(persons2);
     

           add(new FeedbackPanel("feedback"));

HTml code:


<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Wicket Examples - component reference</title>
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>

     <h1>wicket.markup.html.form.ListChoice</h1>
     <wicket:link><a href="Index.html">[back to the reference]</a></wicket:link>

     <p>
     A CheckBoxGroup and CheckBoxComponnet components let users select multiple values from a group of checkboxes. These components are more flexible then the CheckBoxMultipleChoice component in that individual checkboxes are full components, unlike with CheckBoxMultipleChoice, and thus can be used anywhere in the markup.
     </p>
     <p>
      <form wicket:id="form">
           <span wicket:id="group">
                 <table style="border: 2px dotted #fc0; width: 400px; padding: 5px;">
                  <tr>
                  <td valign="top">Select persons</td>
                  <td>
                        <input type="checkbox" wicket:id="groupselector">check/uncheck all </input> <br/>
                        <table cellspacing="0" cellpadding="2">
                             <tr>
                                   <td><b>Select</b></td>
                                   <td><b>First Name</b></td>
                                   <td><b>Last Name</b></td>
                             </tr>
                             <tr wicket:id="persons">
                                   <td><input type="checkbox" wicket:id="checkbox"/></td>
                                   <td><span wicket:id="name">[this is where name will be]</span></td>
                                   <td><span wicket:id="lastName">[this is where lastname will be]</span></td>
                             </tr>
                        </table>
                        <span valign="top">
                        </span>
                  </td>
                  </tr>
                  <tr>
                  <td colspan="2" align="center">
                    <input type="submit" value="submit" />
                  </td>
                  </tr>
                 </table>
           </span>
      </form>
      <h1> multi Check Form</h1>
      <form wicket:id="multiCheckForm">

           <table style="border: 2px dotted #fc0; width: 400px; padding: 5px;">
            <tr>
            <td valign="top">Select your favorite sites</td>
            <td>
                 <span wicket:id="sites">
                 </span>
            </td>
            </tr>
            <tr>
            <td valign="top">Select some of these excellent choices</td>
            <td>
              <span wicket:id="choices">
              </span>
            </td>
            </tr>
            <tr>
            <td colspan="2" align="center">
              <input type="submit" value="submit" />
            </td>
            </tr>
           </table>

      </form>
      <h1> Radio Group</h1>
      <form wicket:id="radioGroupForm">
           <span wicket:id="radioGroup">
                 <table style="border: 2px dotted #fc0; width: 400px; padding: 5px;">
                  <tr>
                  <td valign="top">Select a person</td>
                  <td>
                        <table cellspacing="0" cellpadding="2">
                             <tr>
                                   <td><b>Select</b></td>
                                   <td><b>First Name</b></td>
                                   <td><b>Last Name</b></td>
                             </tr>
                             <tr wicket:id="persons2">
                                   <td><input type="radio" wicket:id="radio"/></td>
                                   <td><span wicket:id="name">[this is where name will be]</span></td>
                                   <td><span wicket:id="lastName">[this is where lastname will be]</span></td>
                             </tr>
                        </table>
                        <span valign="top">
                        </span>
                  </td>
                  </tr>
                  <tr>
                  <td colspan="2" align="center">
                    <input type="submit" value="submit" />
                  </td>
                  </tr>
                 </table>
           </span>
      </form>
     
      <span wicket:id="feedback">feedbackmessages will be put here</span>
</body>
</html>


分享到:
评论

相关推荐

    wicket指南

    3. **组件定义**:使用`add()`方法在页面类中添加组件,如`Label`、`Form`、`Button`等。 4. **事件处理**:通过`onEvent()`方法或在组件上定义`AjaxBehavior`来处理用户交互事件。 5. **数据绑定**:Wicket 提供了...

    Wicket.pdf(Wicket开发指南)

    - **与 Struts 比较:** Wicket 更加注重组件化和 MVC 的分离,提供更好的代码组织结构;而 Struts 更侧重于表单处理和数据验证。 - **与 Tapestry 比较:** 两者都强调组件化开发,但 Wicket 在性能优化方面做得...

    wicket 官方JAVA教程

    页面开始,理解组件的使用和页面的结构。 - **表单处理(Form Handling)**: Wicket提供了强大的表单组件和处理机制,可以轻松实现数据验证和提交。 - **国际化(Internationalization, i18n)**: 支持多语言,...

    wicket简单实例

    Wicket是一款开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。这个“wicket简单实例”是为了帮助初学者理解Wicket的工作原理和基本操作,通过运行这些示例,你可以深入学习Wicket的...

    Wicket开发指南

    相较于Struts,Wicket提供了更丰富的组件库和支持,使得开发者可以更加专注于业务逻辑而非框架细节。 - **Tapestry**:它也是一个组件驱动的框架,但在灵活性方面不如Wicket。Wicket在组件复用、数据绑定等方面具有...

    wicket开发指南

    - 官方文档:提供详细的API参考和教程。 - 用户论坛:讨论问题,分享经验,获取社区支持。 - 第三方库:许多社区贡献的组件库扩展了Wicket的功能。 阅读《Wicket开发指南》PDF,你将逐步了解如何搭建Wicket环境,...

    wicket常用控件使用方法

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

    Wicket开发指南-简体版

    - **ImageButton**:使用图像作为按钮。 - **SubmitLink**:链接形式的提交按钮。 以上内容概述了Wicket开发指南中的关键知识点,希望能帮助读者更好地理解和掌握Wicket框架的核心概念和技术细节。

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

    Wicket的核心理念是组件驱动,这意味着网页被分解为可重用、可管理的组件,每个组件都有自己的状态和生命周期。在"Apache Wicket演示文稿的源代码"中,我们可以深入理解这一框架的内部工作原理。 标题中的“wicket-...

    wicket开发指南 pdf

    2. **组件生命周期**:Wicket组件有三个主要的生命周期阶段:创建、渲染和销毁。在渲染阶段,组件负责生成HTML输出;在创建阶段,可以进行初始化操作;销毁阶段则通常用于释放资源。 **三、模型-视图-控制器(MVC)...

    Wicket中文开发指南

    然而,Wicket通过其独特的组件化设计和易于使用的特性,在众多框架中脱颖而出。 **1.3 Wicket与其他Web框架的比较** - **Struts概述**:Struts是最早的MVC框架之一,强调配置文件的使用,而Wicket则更注重代码本身...

    wicket学习

    2. **Form组件**:表单组件是Wicket中最常用的组件之一,用于收集用户输入的数据。 - **添加组件**:可以将多个组件添加到一个表单中,例如: ```java Form&lt;ClinicItem&gt; form = new Form("form"); add(new ...

    wicket 开发指南

    - 与 Wicket 一样,提供了事件驱动和组件化的编程模型。 - **Wicket**: - 基于组件的 Java Web 框架。 - 采用类似于 ASP.NET 的开发模式。 - 支持 HTML 与 Java 代码的分离。 - 提供了较为丰富的组件库和支持 ...

    Wicket 开发指南

    - **模型-视图-控制器(MVC)模式**: 虽然Wicket不强制使用MVC,但它的设计哲学与MVC模式类似,组件可以绑定到数据模型,视图和控制逻辑自然地分离。 **2. Wicket 架构** - **容器**: Wicket 应用程序由一系列容器...

    Wicket.zip

    4. **状态管理(State Management)**:Wicket 自动管理页面和组件的状态,无需使用session或cookie。这使得页面的呈现和回话管理变得更加简单。 **二、Wicket 开发环境** 1. **Eclipse IDE**:本项目使用Eclipse...

    wicket的ajax范例(级联选择框)

    其中`wicket:id`属性用于标识Wicket组件。 ##### Java代码实现 接下来是Java端的实现部分。这部分代码定义了页面的主要逻辑,并且包含了处理Ajax请求的代码。 ```java package com.steelma.wicket; import java....

Global site tag (gtag.js) - Google Analytics