2 votes

Comment passer une Map au contrôleur à travers Executions.createComponents(...) ? (ZK)

Je fais une fenêtre pop-up.

Window window = (Window)Executions.createComponents("./org.zul", null, **map**);

./org.zul a un EditController.java. Comment ce contrôleur peut-il obtenir map ? merci

5voto

barracus Points 368

Vous pouvez utiliser ceci pour ouvrir une fenêtre contextuelle/modale

Map args = new HashMap();
args.put("myMap", thisIsMyMap);
popupWin = (Window)Executions.createComponents("org.zul", null, args);
// popupWin.setClosable(true);
popupWin.doModal();

et ceci dans EditController.java

thisIsMyMap = (HashMap) Executions.getCurrent().getArg().get("myMap");

2voto

Programmer Points 435

Cela ressemblerait à ceci

Map args = new HashMap();
defaultReorderSelected = new ListModelList()
args.put("availableList", availableReorderList);
args.put("defaultSelected", defaultReorderSelected);
public void createReorderModal(Component comp, Map args) {
Executions.getCurrent().createComponents("/core/component/model_window_new.zul",
                comp, args);

}

Et dans la méthode afterCompose() du viewModel de model_window_new.zul, vous devez écrire le même nom que celui que vous avez utilisé dans la clé du Map

    @AfterCompose
    public void doAfterCompose(@ContextParam(ContextType.VIEW) Component view,
    @ExecutionArgParam("availableList") ListModelList availableList,
                @ExecutionArgParam("defaultSelected") ListModelList defaultSelectedList){
//Votre logique métier.
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X