App Basics
一旦在您的项目中设置好 webforJ 及其依赖项,您就可以创建应用程序结构。本文将介绍基本 webforJ 应用程序的关键元素,特别关注Application
和HomeView
类,这些是webforj-archetype-hello-world
启动项目中的基础类。
主要应用程序类: Application.java
Application
类作为您的 webforJ 应用程序的入口点,设置基本配置和路由。首先注意类的声明和注解。
该类扩展了 webforJ 的核心 App
类,使其被识别为 webforJ 应用程序。各种注解配置应用程序的主题、标题和路由。
@Routify(packages = "com.samples.views")
@AppTitle("webforJ Hello World")
@StyleSheet("ws://app.css")
public class Application extends App {
}
@Routify
: 指定 webforJ 扫描com.samples.views
包以查找路由组件。@AppTitle
: 定义在应用程序浏览器标签上显示的标题。@StyleSheet
: 链接外部 CSS 文件app.css
,允许为应用程序提供自定义样式。
Application
类不包含任何额外方法,因为配置是通过注解设置的,webforJ 处理应用程序初始化。
设置好 Application.java
后,应用程序现在配置了标题和指向视图包的路由。接下来,HomeView
类的概述将提供有关应用程序运行时显示内容的洞察。
发现一个 App
在 webforJ 中,强制限制一个单一的 App
,这将所有错误处理责任转移到 Java 端,使开发人员对错误管理拥有完全控制权。
在 webforJ 引导过程中,所有扩展 com.webforj.App
的类都会被扫描。如果发现多个应用程序,系统会查找 com.webforj.annotation.AppEntry
注解。如果发现的类中有任何被注解为 @AppEntry
,则第一个遇到的被视为入口点。
- 如果一个类被注解为
@AppEntry
,那么该类被选为入口点。 - 如果多个类被注解为
@AppEntry
,则会抛出异常,并列出所有发现的类。 - 如果没有类被注解且仅找到一个
App
的子类,则选定该类为入口点。 - 如果没有类被注解且找到多个
App
的子类,则会抛出异常,详细列出每个子类。
有关 webforJ 中错误处理的更多信息,请参见 这篇文章。
主要视图类: HomeView.java
HomeView
类定义了一个简单的视图组件,作为应用程序的主页。它显示一个字段和一个按钮,用于问候用户输入的名称。
类声明和注解
HomeView
扩展 Composite<FlexLayout>
,使其能够作为一个可重用组件,由 FlexLayout
组件组成。 @Route("/")
使 其成为应用程序的根路由。
@Route("/")
public class HelloWorldView extends Composite<FlexLayout> {
private FlexLayout self = getBoundComponent();
private TextField hello = new TextField("What is your name?");
private Button btn = new Button("Say Hello");
public HelloWorldView(){
self.setDirection(FlexDirection.COLUMN);
self.setMaxWidth(300);
self.setStyle("margin", "1em auto");
btn.setTheme(ButtonTheme.PRIMARY)
.addClickListener(e ->
Toast.show("Welcome to webforJ Starter " + hello.getValue() + "!", Theme.GRAY));
self.add(hello, btn);
}
}