1.问题描述
目前是需要一个登陆成功后跳转到主页面,主页面中包含多个view,一个loginController,一个InfoController,就是将登陆后的用户数据上传到InfoController中进行显示,涉及到跨页面传递数据的问题
2.问题解决
2.1 getController方式
(1)可以在loginController中进行获取InfoController
//传数据 FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/view/infoView.fxml")); fxmlLoader.load(); InfoController infoController = fxmlLoader.getController(); infoController.setAuthentication(authentication); //这里就是你需要传的值 //view切换 Stage primaryStage=(Stage)login.getScene().getWindow(); primaryStage.close(); SalarySystemApplication.showView(MainView.class);
(2)InfoController
private Authentication authentication ; public void setAuthentication(Authentication authentication){ this.authentication=authentication; System.out.println(this.authentication+"ooo"); }
set进来就可以直接获取了
2.2 Map方式(推荐)
(1)新建一个传数据的map进行数据传递
public class TransferDataUtils { public static Map<String, Object> CONTROLLER=new HashMap<String, Object>(); }
(2)在loginController中进行set
TransferDataUtils.CONTROLLER.put("authentication",authentication);
(3)在InfoController中进行get
Authentication authentication=(Authentication) TransferDataUtils.CONTROLLER.get("authentication");
完成了数据传递