vaadin应用程序

来源:互联网 发布:休闲鞋女淘宝 编辑:程序博客网 时间:2024/06/02 00:33
Vaadin 应用程序的体系结构见下图

vaadin应用程序

    如该图所示,使用 Vaadin 开发的应用程序实际上是运行在容器中的 Java Servlet,应用程序的入口点是 Application 类,它会创建并且管理所有必须的 UI 组件。用户与 UI 组件的交互由事件监听器处理,应用程序所需的数据直接被绑定在 UI 组件上,应用程序的整体外观则是由 CSS 编写的主题来控制。在 Vaadin 应用程序中,图标、图片和其他可被用户下载的文件被当作资源 (resources) 来处理,这些资源可以是应用程序内部的,也可以是来自外部的。在程序运行时 ,Vaadin 框架会将同一个应用中的所有的 Http 请求都关联到同一个 session 会话里 , 一个 application 类的实例实际上是一个 session 对象。因此开发人员可以像开发桌面程序一样来开发 Vaadin Web 应用程序,无需考虑 Http 会话管理等通常需要在 Web 应用开发中关注的问题
    在 Vaadin 应用程序中必须定义一个 Application 类来作为程序的入口,这个类需要继承 Vaadin 的抽象类 com.Vaadin.Application并且实现init()方法。当程序运行时,Vaadin 会执行 init() 方法中的代码来生成各个 UI 组件。除此之外,Application 类还提供了应用程序窗口管理,执行控制和主题选择的功能。在初始化 UI 组件时,至少需要建立一个主窗口 (Main Window), 这个主窗口是 Web 浏览器中最高层的 UI 组件 , 其他所有的 UI 部件都包含在主窗口中。由于 Vaadin 应用是一个单页面的 Web 应用程序 , 在整个应用的生命周期中 , 主窗口不会被再次装载 , 所以它和桌面应用程序的主窗口非常类似,是所有其他 UI 组件的容器。如代码清单所示,可以使用 Application 类的 setMainWindow()方法来为应用程序添加主窗口。

代码清单-1
package com.example.hellovaadin;

import com.vaadin.Application;
import com.vaadin.ui.*;
import com.vaadin.ui.LoginForm.LoginEvent;
import java.io.*;
import java.util.Locale;


public class HellovaadinApplication extends Application {
    @Override
    public void init() {
       
        final GridLayout layout = new GridLayout(1, 1);
        layout.setMargin(true);
        LoginForm login = new LoginForm();
        login.setWidth("100%");
        login.setHeight("300px");
        login.setLoginButtonCaption("登录");
        login.setUsernameCaption("用户名:");
        login.setPasswordCaption("密    码");
        login.addListener(new LoginForm.LoginListener() {
            public void onLogin(LoginEvent event) {
                getMainWindow().showNotification(
                        "New Login",
                        "Username: " + event.getLoginParameter("username")
                                + ", password: "
                                + event.getLoginParameter("password"));
            }
        });
        Window mainWindow = new Window("登录窗口",layout);
        layout.addComponent(login);
        layout.setComponentAlignment(login, Alignment.TOP_CENTER);
        setMainWindow(mainWindow);
   
    }

}

    在创建了主窗口之后,可以创建其他的 UI 组件并通过 addComponent方法将它们添加到主窗口中 , 也可以使用 addWindow方法在主窗口中添加子窗口对象。除了 UI 组件外,Vaadin 还提供了多种 Layout 对象用来控制程序的 UI 布局,结合使用各种 Layout 布局,界面 UI 控件以及 Theme 主题,可以使用 Vaadin 开发出外形绚丽并且功能接近桌面程序的 Web 应用。
0 0
原创粉丝点击