Kürzlich habe ich daran gearbeitet, eine große Webanwendung zu aktualisieren, die Wicket 1.4.18 verwendet hat, auf 6.2. Wir hatten eine Situation, in der wir JavaScript-Variablen erstellen würden, um die Positionierung innerhalb einer Drag-and-Drop-Liste zu verfolgen. Dies ist nur der Wicket-Teil des Codes, da das JavaScript immer funktioniert hat und nicht geändert wurde.
ListItem.add(new AbstractDefaultAjaxBehavior()
{
private static final long serialVersionUID = 1L;
@Override
public void onComponentTag(ComponentTag tag)
{
tag.put("ondrop", "var value = $(ui.item[0]).attr('hiddenvalue');"
+ this.getCallbackScript());
}
@Override
public final CharSequence getCallbackUrl()
{
return super.getCallbackUrl() + "&hiddenvalue' + value + '";
}
}
Das Problem, auf das ich jedoch stoße, ist, dass die JavaScript-Variablen nicht auf Werte aufgelöst werden und jetzt als reine Zeichenfolgen (z.B. 'value' anstelle von 5) im getCallbackUrl übernommen werden. Dies war bei Wicket 1.4.18 nicht der Fall, und ich glaube nicht, dass dieses Problem mit unserer Migration auf 1.5.8 entstanden ist.
Letztendlich möchten wir nur den Wert herausziehen können mit
@Override
protected void respond(AjaxRequestTarget target)
{
getRequest().getRequestParameters().getParameterValue("hiddenvalue");
}
Irgendwelche Ratschläge dazu? Ich hoffe, ich habe genügend Informationen bereitgestellt. Vielen Dank im Voraus für jegliche Hilfe. Einiges davon übersteigt meine Kenntnisse und kann einschüchternd sein, wenn man nicht weiß, wo man suchen soll.