从零到高手:一文教你快速上手Vaadin,打造首个炫酷Web应用,开启编程新世界的大门

简介: 【8月更文挑战第31天】Vaadin是一款基于Java的Web应用开发框架,以其丰富的组件库、简洁的API及对现代Web标准的支持而广受开发者欢迎。本文将指导你从零开始快速搭建一个简单的Vaadin应用。首先确保已安装JDK 11及以上版本和IDE(如IntelliJ IDEA或Eclipse)。接着使用Spring Initializr创建新项目,并选中“Spring Web”和“Vaadin”依赖。创建项目后,编写主应用类和主页类,实现基本页面功能。最后配置启动页面并运行应用。通过这些步骤,你将成功搭建一个基础Vaadin应用,开启探索更多特性的旅程。

Vaadin快速入门:搭建你的第一个Vaadin应用

说起Java Web开发,Vaadin是一个不容忽视的选择。作为一个基于Java的Web应用开发框架,Vaadin以其强大的组件库、简洁的API以及对现代Web标准的支持而受到开发者的喜爱。今天,就让我们一起踏上这段旅程,看看如何从零开始,快速搭建一个简单的Vaadin应用程序。

首先,你需要准备好开发环境。确保你的计算机上已经安装了Java Development Kit (JDK),并且版本不低于11。此外,还需要安装一个支持Java的集成开发环境(IDE),如IntelliJ IDEA或者Eclipse。如果你还没有安装这些工具,请先下载并安装它们。

接下来,我们将使用Spring Initializr来创建一个新的Vaadin项目。打开IDE,选择创建新项目,在项目类型中选择Spring Initializr。在项目配置界面中,填写必要的信息,例如项目名称、组ID、工件ID等。对于依赖项,确保至少选中了“Spring Web”和“Vaadin”。

创建项目后,你会发现在项目目录结构中包含了基本的Vaadin应用所需的所有文件。现在,让我们来编写一个简单的Vaadin页面。在src/main/java目录下,找到你的主应用程序类,通常命名为Application或者类似的名字,并继承自VaadinServletInitializer。这个类负责初始化Vaadin应用。

package com.example.vaadinapp;

import com.vaadin.flow.server.PWA;
import com.vaadin.flow.theme.Theme;
import com.vaadin.flow.theme.Lumo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;

import javax.servlet.Servlet;

@SpringBootApplication
@Theme(value = "myapp")
public class Application {
   

    public static void main(String[] args) {
   
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
   
        return new ServletRegistrationBean(new VaadinServlet(), "/*");
    }
}

接下来,创建一个新的Java类来表示我们的主页。这个类将继承自com.vaadin.flow.component.Componentcom.vaadin.flow.router.Route注解标记的页面类。这里我们选择Route,因为它可以帮助我们更容易地管理和导航页面。

package com.example.vaadinapp.views;

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.theme.lumo.LumoUtility.Margin;

@Route("")
@CssImport("./styles/shared-styles.css")
public class MainView extends Div {
   

    public MainView() {
   
        VerticalLayout layout = new VerticalLayout();
        layout.addClassName(Margin.Auto);

        TextField inputField = new TextField("Enter your name:");
        Button greetButton = new Button("Greet me!", event -> {
   
            String greeting = "Hello, " + inputField.getValue() + "!";
            System.out.println(greeting);
        });

        layout.add(inputField, greetButton);
        add(layout);
    }
}

在这个示例中,我们创建了一个包含文本输入框和按钮的基本页面。当用户输入名字并点击按钮时,会在控制台打印一条问候消息。

最后一步是配置Vaadin的启动页面。打开src/main/resources/application.properties文件,确保指定了正确的启动页面:

vaadin.flow.serve.frontend=true
vaadin.flow.production-source=mymodule

保存所有更改后,运行你的Spring Boot应用程序。如果一切顺利,你应该能够在浏览器中访问http://localhost:8080,并看到一个简单的页面,上面有一个输入框和一个按钮。当你输入文字并点击按钮时,控制台会输出相应的问候语。

通过以上步骤,你已经成功搭建了一个基本的Vaadin应用程序。这只是一个起点,Vaadin框架提供了许多强大的功能和组件,可以帮助你构建更复杂、更互动的Web应用。希望这篇文章能够激发你探索更多Vaadin特性的兴趣,并助力你的开发之路。

相关文章
|
3天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
227 91
|
3天前
|
前端开发
【前端web入门第四天】01 复合选择器与伪类选择器
本文档详细介绍了CSS中的复合选择器与伪类选择器。复合选择器包括后代选择器、子代选择器、并集选择器和交集选择器,能够更精确地定位和样式化元素。后代选择器用于选中某元素的所有后代,子代选择器仅选中直接子元素。并集选择器可为多个标签设置相同样式,而交集选择器则选中同时满足多个条件的元素。此外,还介绍了伪类选择器,如鼠标悬停效果和超链接的不同状态。
42 32
【前端web入门第四天】01 复合选择器与伪类选择器
|
1天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
18 8
只需四步,轻松开发三维模型Web应用
|
3天前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`<select>` 和 `<option>`)、文本域(`<textarea>`)、标签解释(`<label>`)、各类按钮(`<button>`)及表单重置功能、无语义布局标签(`<div>` 和 `<span>`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
3天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
38 28
|
5天前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`<ul>`嵌套`<li>`)、有序列表(`<ol>`嵌套`<li>`)和定义列表(`<dl>`嵌套`<dt>`和`<dd>`)。
35 19
|
3天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
26 15
|
5天前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`<img>`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`<a>`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
27 13
|
2天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
20 11
|
2天前
|
前端开发