`
congpeixue
  • 浏览: 269540 次
  • 性别: 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-book apache click framework介绍

    click-book apache click framework介绍

    Click framework 快速入门指南

    博文链接:https://congpeixue.iteye.com/blog/220221

    .NET Framework 2.0

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

    用于 Firefox 的 .NET Framework Assistant 1.0 的 .NET Framework 3.5 SP1 更新

    在 .NET Framework 3.5 SP1 中,.NET Framework Assistant 使 Firefox 可以使用 .NET Framework 中所包含的 ClickOnce 技术。.NET Framework Assistant 是在计算机级别添加的,支持计算机的所有用户使用其功能。因而...

    Click Framework-开源

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

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

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

    RobotFramework基础教程.pdf

    kw ${search_key} click button id:su Evaluate time.sleep(2) time ${title} Get title [Return] ${title} *** Test Case *** case1 Open Browser ${URL} ${BROWSER} ${title} Baidu Search robot framework Should...

    Microsoft .NET Framework 3.5 Service Pack 1

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

    Apache Click User Guide

    Apache Click is a simple JEE web application framework for commercial Java developers. Apache Click is an open source project, licensed under the Apache license . Click uses an event based programming...

    js不完美解决click和dblclick事件冲突问题

    情况描述 当某个元素,如:div,同时绑定了click事件和dblclick事件,而这两个事件又要处理相对独立的业务,也就是click的时候不能触发dblclick,dblclick的时候不能触发click。在实际测试中发现,当dblclick的时候...

    ClickOnce添加外部文件

    关键字:ClickOnce,添加外部文件,Visual Studio 2008 SP1,.NET Framework 3.5,SmartClient 环境:XP SP3,Visual Studio 2008 SP1,.NET Framework 3.5 本人之前在鼓捣SmartClient相关的东东,需要借助...

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

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

    Microsoft Visual Studio 打包目标框架Net Framework4.0

    Microsoft Visual Studio 2022 setup project 打包中缺少目标框架Net Framework4.0,将该压缩包解压放置C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages路径中。

    click-2.3.0.zip

    Click is a J2EE web application framework featuring a Page and Component oriented design. Click is an open source project licensed using the Apache license.

    clickshare扩展屏插件

    clickshare扩展屏插件,用于clickshare-200 投屏后启用扩展功能的插件。

    Python库 | robotframework-selenium2library-1.7.0.win-amd64.exe

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:robotframework-selenium2library-1.7.0.win-amd64.exe 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    部署 ClickOnce 应用程序 winform

    部署 ClickOnce 应用程序 winform

    Click_me.zip_ML2_clickme如何进入_r 18.click me_安卓

    可进行登录注册,ListView展示简单通讯录,点击号码跳转拨号盘显示

    Java Collections Framework

    If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Tutorial tips 2 2. Collections Framework 3 3. Collection interfaces and classes 5 4. ...

    动态定义clickonce安装路径

    程序员可以通过程序动态定义clickonce安装路径

Global site tag (gtag.js) - Google Analytics