元素组合
ElementComposite 类包装一个自定义 HTML 元素或 Web 组件。它将你的 Java 类绑定到底层的 Element,并允许你通过 Java 操作该元素的属性、属性和事件。将其用于将 Web 组件集成到 webforJ 应用中。
使用
ElementComposite 的时机当包装一个 webforJ 尚未提供的第三方 Web 组件时,请使用 ElementComposite。如果一个内置的 webforJ 组件满足用例(例如 TextField、ColorField、Button 等),那就使用那个。对于不需要重用的一次性 DOM 工作,可以直接使用 Element 类而无需包装。
本指南演示如何使用 ElementComposite 类实现 Web Awesome 相对时间 Web 组件。
显示代码
- RelativeTimeView.java
类注解
在 ElementComposite 子类的顶部,通常会出现三个注解:@NodeName 声明组件包装的 HTML 标签,@JavaScript 和 @StyleSheet 加载底层 Web 组件依赖的任何客户端资产。@NodeName 是必需的,并且特定于 ElementComposite。@JavaScript 和 @StyleSheet 是通用 webforJ 资产注解,可以应用于任何类,包括视图、组件或 App 类。
@NodeName
@NodeName 注解声明组件包装的 HTML 标签。webforJ 在创建 DOM 中的底层元素时使用这个名称。
@NodeName("wa-relative-time")
public class RelativeTime extends ElementComposite {
// ...
}
标签名称必须与客户端上注册的自定义元素匹配。没有这个注解,框架无法确定创建哪个元素。
在子类中,getNodeName() 可以读取声明的标签,getElement() 返回底层的 Element