将视图从 JavaFX 转换为 HTML

Rob*_*bb1 3 html java javafx

我使用带有文件的JavaFX编写了一个 Java桌面应用程序。是否可以“移植”它而保留所有代码不变,而只是使用文件(对于Web 应用程序版本)?例如,我想保持标签原样。xmlhtml@FXML

MMA*_*ams 5

不。

HTML 和 FXML(我认为这就是您所说的“xml”,因为您需要 fxml 来运行 JavaFX 应用程序)仅在表面上相似。

HTML - 超文本标记语言
FXML - FX 标记语言

它们都使用“标签”来“标记”内容,让任何读取它的程序都知道如何显示给定的信息,但它们并不相同。

显示网页的浏览器期望某些 HTML 标签存在,例如<html>或<head>或<body>,并且不理解其他标签,例如 FXML 的<Pane>标签或<ComboBox>标签。浏览器根本不知道如何显示它,就像 JavaFX 应用程序不知道如何显示<br>标签一样。


现在,撇开一边,您能否为两个应用程序使用相同的后端代码?是的。您需要将所有必要的代码放在他们都可以访问的地方,因此,在您的 JavaFX 应用程序中,您的方法可能如下所示:

@FXML
public void doSomething(ActionEvent e){
    MyJavaServer.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

在基于 Web 的应用程序中,您可以使用 Spring Framework 或其他东西来生成调用相同MyJavaServer.doSomething().

  • 此外,Web 应用程序的控制器位于服务器的内存中,并被重复用于来自多个客户端的多个(瞬时)视图请求。JavaFX 应用程序的控制器位于客户端内存中,并且可能在整个应用程序的生命周期内持续存在。它持有(持久)对 UI 控件的引用,并且只处理一个客户端。这些东西的寿命是完全不同的。 (2认同)