`
congpeixue
  • 浏览: 274587 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

Click framework 导言(二)

阅读更多
Simple Form

表单和字段同样是Click框架中经常使用的控件。
下面的SimpleForm 提供了这些控件的一个简单应用。
在下面的例子代码中, 我们在表单中添加一个textfield字段和一个submit按钮, 同时
设置一个方法作为表单的控件监听器。
注意: 在本例中page的public类型的form字段被自动的添加到控件列表中。

public class SimpleForm extends Page {

    public Form form = new Form();
    public String msg;

    // ------------------------------------------------------------ Constructor

    public SimpleForm() {
        form.add(new TextField("name", true));
        form.add(new Submit("OK"));

        form.setListener(this, "onSubmit");
    }

    // --------------------------------------------------------- Event Handlers

    /**
     * 处理表单的提交事件
     */
    public boolean onSubmit() {
        if (form.isValid()) {
            msg = "Your name is " + form.getFieldValue("name");
        }
        return true;
    }
}


然后我们新建SimpleForm 的模板 simple-form.htm。 Click会自动地把simple-form.htm
模板和SimpleForm 类关联起来。

<html>
<head>
$cssImports
</head>
<body>
  
$form
  
#if ($msg)
  <div id="msgDiv"> $msg </div>
#end
    
</body>
</html> 
$jsImports


当SimpleForm page被第一次请求的时候, $form 对象将自动地在页面上显示出来。

这里要说明的是,如果用户没有输入用户名就点击了Ok按钮来提交表单。 ClickServlet
将生成一个新的SimpleForm实例并处理表单控件,表单控件处理时发现该字段不合法,
所以onsubmit()方法简单的返回一个true。 之后, 表单将显示验证错误信息。



在提交和验证的时候表单将自动的维护输入的数据的状态。

现在如果用户输入了名字并点击了OK按钮, 表单将被验证通过并通过onSubmit()将msg信息
添加到Pages模型中。页面将显示如下:
Your name is John Masters


Advanced Form Example

AdvancedForm  Page将提供一个使用表单的高级的例子,使用form、 field和fieldSet。
首先我们让AdvancedForm 在他的构造方法中生成一个Form。Form的Select列表
在页面的onInit()方法中被组装。此时, 要求page依赖的所有资源应该是有效的。

在本例中, page的public类型的form字段被自动地添加到控件列表中。

public class AdvancedForm extends Page {

    public Form form = new Form();
    public String msg;

    private Select investmentSelect = new Select("investment");

    // ------------------------------------------------------------ Constructor

    public AdvancedForm() {
        FieldSet fieldSet = new FieldSet("Customer");
        form.add(fieldSet);

        TextField nameField = new TextField("name", true);
        nameField.setMinLength(5);
        nameField.setFocus(true);
        fieldSet.add(nameField);

        fieldSet.add(new EmailField("email", true));

        fieldSet.add(investmentSelect);

        fieldSet.add(new DateField("dateJoined", true));
        fieldSet.add(new Checkbox("active"));

        form.add(new Submit("ok", " OK ", this, "onOkClicked"));
        form.add(new Submit("cancel", this, "onCancelClicked"));
    }

    // --------------------------------------------------------- Event Handlers

    /**
     * @see Page#onInit()
     */
    public void onInit() {
        CustomerService customerService = getCustomerService();
        investmentSelect.add(Option.EMPTY_OPTION);
        investmentSelect.addAll(customerService.getInvestmentCatetories());
    }

    /**
     * 处理Ok 按钮的Click事件
     *
     * @return true
     */
    public boolean onOkClicked() {
        if (form.isValid()) {
            Customer customer = new Customer();
            form.copyTo(customer);

            getCustomerService().saveCustomer(customer);

            form.clearValues();

            msg = "A new customer record has been created.";
        }
        return true;
    }

    /**
     * Handle the Cancel button click event.
     *
     * @return false
     */
    public boolean onCancelClicked() {
        setRedirect(HomePage.class);
        return false;
    }
}


新建AdvancedForm 的对应的模板advanced-form.htm, Click 会自动地将advanced-form.htm 模板与AdvancedForm 类关联起来。

<html>
<head>
$cssImports
</head>
<body>

#if ($msg)
  <div id="msgDiv"> $msg </div>
#end
  
$form
    
</body>
</html> 
$jsImports


当AdvancedForm 第一次请求页面的时候, $form 对象对显示出来。


在本例中,当Ok按钮被点击的时候onOkClicked()被调用。 如果表单是有效的,一个新的
customer 对象被创建并使用form的copyto()方法将表单字段的值拷贝到customer对象中去。之后, customer 对象被保存,表单字段值被清空, info信息被显示给用户。


Form Layout

上面我们使用了表单控件来生成html表单和字段。 对快速构建页面这是一个很
好的特点 。表单控件也提供了一些布局属性。参见后面的章节。
  • 大小: 12.3 KB
  • 大小: 4.5 KB
分享到:
评论

相关推荐

    Click framework 快速入门指南

    Click框架快速入门指南 Click框架是一个轻量级、模块化的Java Web开发框架,它提供了简单易用的API,使得开发者可以快速构建高效、可维护的Web应用。本指南将帮助你了解Click的基本概念,以及如何使用它来创建一个...

    click-book apache click framework介绍

    ### Apache Click Framework 介绍 #### 一、简介 Apache Click 是一个用于开发 Web 应用程序的 Java 框架,旨在提供一个简洁且高效的 API 来构建动态 Web 页面。Click 的设计目标是减少开发时间并提高代码的可读性...

    .NET Framework 2.0

    试图安装第二种语言版本的 .NET Framework 时,将会导致出现以下错误:“安装程序无法安装 Microsoft .NET Framework,因为已经安装了该产品的其他版本。”如果您要使用非英语的平台或要以另一种语言查看 .NET ...

    部署 ClickOnce 应用程序 winform

    点击一次(ClickOnce)是 .NET Framework 中的一种应用程序部署技术,它允许开发者将应用程序部署到客户端计算机上,并且可以自动更新应用程序。下面是 ClickOnce 应用程序部署的相关知识点: 一、ClickOnce 部署...

    .NetFrameWork虚拟器无需打包Framework

    ClickOnce则是一种Windows上的应用程序部署技术,它可以自动处理.NET Framework的依赖,确保目标机器上有正确的版本。 压缩包子文件"doNetVM"可能是一个工具或者库,用于帮助开发者实现这一目标,即创建不包含完整...

    RobotFramework中实现PageObject模式的轻量级关键字库_Python_RobotFramework.zip

    Robot Framework是一款广泛应用于自动化测试领域的开源测试框架,它支持关键词驱动测试方法,使得测试脚本易于编写和维护。PageObject模式是一种设计模式,常用于Web应用程序的自动化测试中,将网页或页面作为一个...

    Click Framework-开源

    Click Framework是一个易于学习和使用的J2EE Web应用程序框架。 Click是为商业Java团队开发的Web应用程序而设计的。 使用Click,开发人员应该能够在一天内启动并运行。

    microsoft net compact framework

    4. **部署和更新机制**:通过ClickOnce技术,开发者可以轻松地将应用程序部署到目标设备,并进行后续的更新和维护。 5. **设备兼容性**:.NET Compact Framework设计时考虑了各种不同类型的设备,确保应用程序可以...

    .net framework4.0环境

    10. **部署与更新**:为了简化应用程序的部署,4.0版本引入了ClickOnce技术,使得用户可以轻松地安装、更新和卸载应用程序。 总之,.NET Framework 4.0是一个强大且全面的开发平台,提供了多种工具和技术来支持高效...

    深度挖掘.NET Framework 2.0系列课程-(1)Click-Once 安装技术

    《深度挖掘.NET Framework 2.0系列课程——(1)Click-Once安装技术》 在.NET Framework 2.0时代,微软引入了一项创新的部署技术——Click-Once,它为开发者提供了一种简单而安全的方式,使得应用程序可以被用户轻松...

    Microsoft.NETFramework2

    同时,ClickOnce部署技术使得应用程序能够轻松实现单击安装和自动更新。 在安全性方面,.NET Framework 2.0加强了代码访问安全,允许管理员控制应用程序的权限,减少了恶意代码的危害。此外,它还支持基于角色的...

    Microsoft .NET Framework 2.0 版 可再发行组件包

    试图安装第二种语言版本的 .NET Framework 时,将会导致出现以下错误:“安装程序无法安装 Microsoft .NET Framework,因为已经安装了该产品的其他版本。”如果您要使用非英语的平台或要以另一种语言查看 .NET ...

    robot framework +selenium

    #### 二、Selenium Library 的安装 为了实现 Robot Framework 与 Selenium 的结合,首先需要安装 Selenium Library。以下是一步一步的安装指导: 1. **Python 环境准备**: - 首先确保已经安装了 Python 环境。 -...

    Robot Framework测试平台搭建

    Click Element id=login ``` 9. **运行测试** 在RIDE中,你可以右键点击测试用例或测试套件并选择“Run”来执行测试。在命令行中,可以使用`robot`命令来运行测试用例文件: ``` robot 测试用例文件路径 ``` ...

    net framework 2.0.rar

    在部署和配置方面,.NET Framework 2.0引入了ClickOnce技术,它允许应用程序的快速部署和自动更新,降低了用户的安装和升级成本。 文件列表中的"1.pptx"可能包含与.NET Framework 2.0相关的讲座或教程材料,而...

    .NET Framework 2.0 Configuration配置安装程序

    6. **部署与更新**:.NET Framework 2.0支持ClickOnce部署,这是一种简化应用程序部署的机制,可以自动处理版本更新和依赖项检查。同时,Windows Installer MSI包(如Project.msi)可以用于分发和安装.NET Framework...

    .netframework3.5,适用于XP系统 也可通过微软官网下载

    VS2010的路径是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1 更高版本路径是C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX35SP1...

    Microsoft .NET Framework 3.5 Service Pack 1

    ClickOnce 应用程序发行者可以决定在适当情况下不进行签名和加密,开发人员可以编程方式安装 ClickOnce 应用程序以显示自定义署名,并且 ClickOnce 错误对话框支持链接到 Web 上应用程序特定的支持网站。 实体框架...

    .NET Framework高级开发

    九、部署与生命周期管理:理解ClickOnce部署、GAC(全局程序集缓存)以及.NET Framework的版本兼容性问题,有助于顺利发布和更新应用程序。 十、性能优化:通过分析工具如Profiler,了解内存分配、CPU使用和瓶颈,...

Global site tag (gtag.js) - Google Analytics