如何在JavaFX中使用来自另一个Controller的变量

我有两个场景Login.fxml和MainView.fxml以及两个不同的控制器LoginController.java和MainViewControler.java

在LoginController中,我执行整个登录过程并获取JSessionID的值并将其存储在对象中,如下所示:

loginGateway = loginGateway(gateway); 

现在在MainViewController中我需要使用this对象(loginGateway)来获取getJSessionID并向服务器发出其他请求。 但是如何在另一个Controller类(MainViewController.java)中访问此对象?

在传递参数JavaFX FXML中使用解决方案的变体。

设置一个LoginManager ,它引用了LoginControllerMainViewController

  1. loginManager使用loginController创建一个登录屏幕,并将loginManager自己的引用传递给loginController
  2. 登录过后, loginController会通知loginManager登录sessionID
  3. 然后loginManager可以创建一个MainViewController ,将mainViewController传递给sessionID并用主视图替换场景内容。

以下是一些示例代码的链接,以演示此方法。 登录界面主视图屏幕