Wie kann ich eine Wicket-URL, hinter der sich seine Parameter?

Ich bin derzeit auf der Schaffung einer Reihe von Verknüpfungen mit code wie diesem:

BookmarkablePageLink<CheeseMain> havarti =
    new BookmarkablePageLink<CheeseMain>("havarti", CheeseMain.class);
havarti.setParameter("Title", "Havarti");
havarti.setParameter("Group", "cheeseName");
add(havarti);

Die URL kommt, hat das format
https://mysite.com/;jsessionid=B85EE5CB0349CCA2FE37AF76AB5C30C1?wicket:bookmarkablePage=:com.mycompany.cheese.CheeseMain&Title=Havarti&group=cheeseName.

Mein problem ist, dass ich nicht mehr möchtest, dass die URL für diese Verknüpfung, um sein bookmarkable. Im Idealfall würde ich es gerne etwas einfacher, wie https://mysite.com/cheese, aber damit kann ich Leben mit einer falschen URL. Das wichtigste ist, dass die Parameter nicht sichtbar.

Wie sollte ich ändern, wie ich meine links generieren? Ich habe die verschiedenen URL-Kodierung-Strategien, Wicket bietet, aber keiner von Ihnen entfernen, die Parameter; Sie müssen nur zeigen Sie sich anders.

  • Das weglassen der "Bookmarkable" - bit, verwenden Sie eine einfache PageLink. Wenn ich mich richtig erinnere, sollte es funktionieren.
  • Ich habe versucht, verwenden Sie ein standard - Link -- eigentlich eine Unterklasse von Link, da Link ist Abstrakt-aber es erfordert eine Menge anderer änderungen. PageLink veraltet ist, in der Javadoc empfiehlt, entweder BookmarkablePageLink oder Link statt.
  • Torgamus Gut, verwenden Sie ein Link dann. 🙂 Oder Sie können live mit es als veraltet, und verwenden Sie PageLink. Obwohl ich nicht sehen, wie mit einem Link können viel komplizierter sein. Können Sie fügen Sie einige weitere Details über diese? Vielleicht können wir arbeiten, eine einfache Lösung mit Links
  • Gut, Link keine setParameter() Methode, also behalf ich mir mit einer PageParameters Objekt. Aber das erfordert einen neuen Konstruktor für die Ziel-Seite. Ich habe Probleme beim Verständnis der session/request-handling in der Ziel-Seite, aber über den Rahmen dieser Frage.
  • Sie möchten eine URL oder eine Link?
  • Soweit ich weiß, vorbei an einem PageParameters Instanz der setResponsePage Methode und ruft BookmarkablePageLink.setParameter() hat den gleichen Effekt.
  • Torgamus sollten Sie den super-Konstruktor Page(PageParameters params) unabhängig. Es wird in den Page Klasse zum speichern dieser Parameter. Wenn Sie nur den leeren Konstruktor, nachfolgende Aufrufe Page#getPageParameters() null zurück, auch wenn Sie BookmarkablePageLink#setParameter(). Möglicherweise haben Sie nicht auf dieses problem noch nicht, aber Sie wird...
  • Was mir sorgen macht über PageParameters ist, dass Wicket in Action sagt: "Eine Seite wird als bookmarkable, wenn ... es hat einen Konstruktor, eine PageParameters Instanz als das einzige argument." @biziclop
  • das ist nicht zu kritisch ein Thema für mich, als, die Seite, dessen Parameter kommen derzeit über eine anderer Pfad.

InformationsquelleAutor Pops | 2011-06-17
Schreibe einen Kommentar