我有两个场景 Login.fxml 和 MainView.fxml 以及两个不同的控制器 LoginController.java 和 MainViewControler.java
在 LoginController 中,我完成了登录并获取 JSessionID 的值并将其存储在对象中的整个过程,如下所示:
loginGateway = loginGateway(gateway);
现在在 MainViewController 中,我需要使用 this 对象 (loginGateway) 来获取 JSessionID 并向服务器发出其他请求。但是我如何在另一个控制器类(MainViewController.java)中访问这个对象???
2023 年更新
正如参考问题中所述:
- 传递参数 JavaFX FXML https://stackoverflow.com/questions/14187963/passing-parameters-javafx
此处提供的替代解决方案是使用 MVC,类似于以下文档:
- 将 MVC 与 JavaFx 一起应用 https://stackoverflow.com/questions/32342864/applying-mvc-with-javafx
这里提出的解决方案仍然完全可以,但是通过采用 MVC 方法,您可能会拥有更多的灵活性(以及更多的复杂性)。
使用解决方案的变体传递参数 JavaFX FXML https://stackoverflow.com/questions/14187963/passing-parameters-javafx.
Setup a LoginManager
其中引用了两个LoginController
和MainViewController
.
- The
loginManager
使用以下命令创建登录屏幕loginController
并将对其自身的引用传递给loginController
.
- 当登录通过后,
loginController
通知loginManager
登录的sessionID
.
- The
loginManager
然后可以创建一个MainViewController
,通过mainViewController
the sessionID
并用主视图替换场景内容。
Here is a link to some sample code https://gist.github.com/4631319 to demonstrate this approach.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)