Bonjour à tous!
J'ai un petit problème avec Wicket: je travaille sur une appli mélant Wicket, SEAM et ExtJS.
En gros la plupart des intéractions se font de manière asynchrones.
Nous avons une liste de callback appelés depuis le javascripts et le java fait le business.
Mais je dois générer des rapports en PDF avec Jasper et doit permettre des les downloader.
Donc je ne peux pas passer par de l'asynchrone pour ce type de requete.
Du coup, j'ai voulu faire un formulaire caché wicket, dont le onSubmit() lancerait la génération du rapport.
J'ai donc un truc tout con du genre:
<wicket:panel>
<form wicket:id="download_form">
</form>
</wicket:panel>
et
public ProjectExplorerPanel() {
super(Globals.PROJECT_EXPLORER_COMP_ID);
// TODO
// Form whose purpose is to managed asynchronous requests such as
// download requests
Form form = new Form("download_form") {
@Override
protected void onSubmit() {
try {
projectExplorerManager.createReport(null, null);
} catch (UCMTApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
// super.onSubmit();
}
};
form.setMarkupId("download_form"); // id attribute of element is "someid"
add(form);
}
et j'essaie d'appeler le bidule depuis le javascript:
function createReport(node) {
var form_d =document.getElementById('download_form');
form_d.submit();
}
Sauf que sur la ligne où j'appelle "submit()", ça me dit que "submit" n'est pas une fonction.
Je me suis alors dit "morbleu, je dois avoir un bouton qui s'appelle submit"! Et j'ai checké le html généré, le js...
Et là j'ai vu que , au lieu de générer une balise form, Wicket me génère une balise div, avec le bon id par contre...Donc, forcément, appeler "submit" dessus, ça ne marche pô...
Quelqu'un aurait une idée du pourquoi du comment???
Merci beaucoup d'avance!!!!
Partager