`

wicket DropDownChoice RadioChoice 实用

 
阅读更多

        前一阵子,介绍了wicket的一些官方的例子,实际开发中发现有些不太实用,例子过于简单了,考虑到目前我们团队中好多人都不熟悉这个框架(我也是刚刚接触),网上开发者寥寥无几,国内新一点的参考草料基本没有看到,为了写一个页面动不动上百行千行代码,而且极其复杂,思前考后,觉得应该是我们用错了,所以先单独对感觉几个复杂也是常用的组件下拉框、单选按钮进行单独研究,经过约两天的反复推敲,终于喜得成果,话不多说,如下:

 

1.测试、运行环境:idea+maven+tomcat7

2.相关版本:wicket7.6.0,jdk7

 

本章省去wicket安装运行环节,具体可参照本人文章:http://pandahuha.iteye.com/admin/blogs/2353293

运行环境搞定后:

首先构建登录用户,

public class User implements IClusterable {
private int id;
private String loginName;
private String nickname;
private int logins;

set/get省略

构建页面类,命名LoginPage,

public class LoginPage extends WebPage {
private static final long serialVersionUID = -445927799394341911L;

new 两个list,下拉框、单选按钮会用到

private static final List SITES = Arrays.asList(new String[]{"T", "J", "JN"});
private static final List INTEGERS = Arrays.asList(new Integer[]{1, 2, 3});

页面类构造

public LoginPage(final PageParameters parameters) {
    super(parameters);
    User user = new User();
    user.setNickname("J");
    user.setLogins(2);
    add(new LoginForm("loginForm", new CompoundPropertyModel<User>(user)));
}
user设置完相应属性后,RadioChoice、DropDownChoice会默认选中

构建内部类表单

class LoginForm extends Form<User> {

 

表单构造

public LoginForm(String id, IModel<User> model) {
    super(id, model);

表单内部添加反馈面板

final FeedbackPanel fp = new FeedbackPanel("feedback");
fp.setOutputMarkupId(true);
add(fp);
用于反馈表单验证后的信息

添加登录框架、密码框

add(new TextField("loginName"));
add(new PasswordTextField("pwd"));
这里简单添加一下两个框框

添加下拉框

add(new DropDownChoice("nickname", SITES, new ChoiceRenderer<String>() {
    @Override
    public Object getDisplayValue(String value) {
        switch (value) {
            case "T":
                return super.getDisplayValue("The Server Side");
            case "J":
                return "Java Lobby";
            case "JN":
                return "Java.Net";
            default:
                throw new IllegalStateException(value + " is not mapped!");
        }
    }
}));
重点在这里

添加单选按钮

add(new RadioChoice("logins", INTEGERS, new ChoiceRenderer<Integer>() {
    @Override
    public Object getDisplayValue(Integer value) {
        switch (value) {
            case 1:
                return "One";
            case 2:
                return "Two";
            case 3:
                return "Three";
            default:
                throw new IllegalStateException(value + " is not mapped!");
        }
    }
}));

添加表单提交按钮

add(new AjaxButton("submit") {
    @Override
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
        super.onSubmit(target, form);
        Object o = form.getModelObject();
        if (o instanceof User) {
            User user = (User) form.getModelObject();
            error("it is success!" + "Logins=" + user.getLogins() + "Nickname=" + user.getNickname());
        } else
            error("it is error");
        onError(target, form);
    }

    @Override
    protected void onError(AjaxRequestTarget target, Form<?> form) {
        super.onError(target, form);
        target.add(fp);
    }
});
异步提交表单时候,一定要重写onError方法

好,设置默认欢迎页面就是LoginPage,效果如下

 
欢迎wicket,java探讨

 

 

 

 

 

 

 

 

 


  • 大小: 5.4 KB
  • 大小: 2.8 KB
分享到:
评论

相关推荐

    Wicket.pdf(Wicket开发指南)

    - **DropDownChoice:** 下拉列表。 - **ListBox:** 列表选择框。 - **SubmitLink:** 提交按钮。 #### 五、部署 Wicket 应用程序 - **部署 Wicket 1.2 程序:** - 针对 Wicket 1.2 版本的应用程序,部署过程...

    wicket7教程

    最后,Wicket的表单处理细节中涵盖了表单的基本概念,包括表单的定义、组件如DropDownChoice的使用、模型链、可分离模型等高级特性。Wicket模型的使用鼓励开发者使用模型而非直接操作数据,这样可以增加代码的可维护...

    wicket指南

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

    wicket_mvn库

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

    apacke-wicket-mvn编译

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

    wicket相关书籍

    首先,"Apache Wicket Cookbook" 是一本实用指南,旨在帮助开发者快速解决在使用 Wicket 进行Web开发时遇到的具体问题。这本书通常会涵盖如何创建和定制组件、处理用户交互、实现数据持久化以及优化性能等多个方面。...

    wicket开发指南 pdf

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

    wicket1.4.7中的jar包

    4. **wicket-util.jar**:包含了一些通用的工具类和实用程序,如XML解析、字符串操作、缓存管理等,方便开发者进行日常的编程工作。 5. **wicket-ioc.jar**:提供了依赖注入(Dependency Injection, DI)的功能,...

    wicket 官方JAVA教程

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

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

    import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; ...

    Wicket 入门

    ### Wicket 入门与 Eclipse 项目创建指南 在当今的 Web 开发领域,Java 框架扮演着举足轻重的角色,其中 Apache Wicket 是一个强大的、面向组件的 Java Web 应用框架,它简化了 Web 应用的开发过程。本文将详细介绍...

    wicket简单实例

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

    wicket国际化例子

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

    wicket的helloworld

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

    Wicket 8.X开发文档(中文翻译+英文原版)

    组件DropDownChoice 11.6。模型链 11.7。可拆卸型号 11.8。在组件中使用多个模型 11.9。使用型号! 11.10。摘要 12. Wicket详细说明 12.1。默认表单处理 12.2。表单验证和反馈消息 12.3。输入值转换 12.4。使用JSR ...

    wicket 基础知识培训

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

    wicket例子和开发指南

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

    Wicket开发指南-简体版

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

Global site tag (gtag.js) - Google Analytics