Ho un pulsante di anteprima. Quando l'utente premi l'anteprima, il modulo viene inviato in una nuova scheda per mostrare che un file pdf ha dati in forma. Io uso un SubmitLink personalizzato per farlo SubmitResourceLinkLa pagina Wicket viene aggiornata se si utilizza ajax dopo che il modulo è stato inviato con target = _blank
public abstract class SubmitResourceLink extends SubmitLink implements IResourceListener {
private final IResource resource;
@Override
public final void onResourceRequested() {
Attributes a = new Attributes(RequestCycle.get().getRequest(), RequestCycle.get().getResponse(), null);
resource.respond(a);
}
implementare su modulo
new SubmitResourceLink("previewBtn", form, new JasperReportsResource() {
private static final long serialVersionUID = -2596569027102924489L;
@Override
public byte[] getData(Attributes attributes) {
return control.getExportPreviewByteStream(estimateModel.getObject());
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected String getTriggerJavaScript() {
String js = super.getTriggerJavaScript();
js = "document.getElementById('" + form.getMarkupId() + "').target='_blank';" + js;
return js;
}
@Override
public void onSubmit() {
form.add(AttributeModifier.append("target", Model.of("_blank")));
processInputs(form);
onResourceRequested();
}
}.setDefaultFormProcessing(false);
Quando si preme anteprima, una nuova scheda è aperto nel mese. Ma quando inserisco in qualsiasi componente ajax (es: AutoCompleteTextField), xml restituisce dati xml: <ajax-response><redirect>....</redirect></ajax-response>
e aggiorna pagina. Ora, dopo l'anteprima della stampa, utilizzo ancora la forma corrente. Grazie.
Grazie per anwser. Capisco perché wicket lo fa. Ma non so come risolvere il mio problema. – luanvu
L'utilizzo di una finestra popup è un'opzione? Sarebbe molto più semplice dell'apertura di una nuova scheda. Dovrebbe essere qualcosa come: SubmitLink # setPopupSettings (...) –