Skip to content


onclick statt Link

Was mir eigentlich nur durch Zufall auffiel, ist die Tatsache, dass man in Wicket einen Link auch an andere Tags als “a”,”area”, etc binden kann. Netterweise macht Wicket dann daraus einen Javascript-Aufruf. Das geht mit einem Link und (wesentlich interessanter) auch mit einem AjaxFallbackLink.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Andere Beiträge

Posted in Wicket.

Tagged with , , , .


13 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Tweetback! @wicketpraxis says

    New blog post: onclick statt Link http://tinyurl.com/ddmrld

  2. interessierter says

    Hallo Michael,

    wie läßt sich ein externer Link in einer ListView ohne Javascript darstellen? Was auch immer ich versuche, ich bekomme nur Ajax links.

    Viele Grüße

    • admin says

      Kann ich mal den Code sehen? Die ExternalLink-Klasse sollte es richten, oder verstehe ich das Problem gerade nicht?

  3. interessierter says

    Hier ist der Code. Frei nach dem ListViewPage – Beispiel aus dem Buch.

    Ganz unten steht der generierte HTML-Code.

    Was ich gerne hätte wären ganz normale externe links, ohne JavaScript. Wie geht das?


    package de.wicketpraxis.findfiles.pages;

    import java.util.Arrays;

    import org.apache.wicket.markup.html.WebPage;
    import org.apache.wicket.markup.html.basic.Label;
    import org.apache.wicket.markup.html.link.ExternalLink;
    import org.apache.wicket.markup.html.list.ListItem;
    import org.apache.wicket.markup.html.list.ListView;

    public class ListViewPage extends WebPage {

    public ListViewPage() {

    add(new ListView("list", Arrays.asList(new ExternalLink(
    "part1", "http://www.google.de", "http://www.google.de"), new ExternalLink("part1", "http://www.findfiles.net",
    "http://www.findfiles.net"))) {

    @Override
    protected void populateItem(ListItem item) {
    ExternalLink text = item.getModelObject();
    item.add(text);
    }

    });
    }
    }

    Start

    http://www.google.de

    http://www.findfiles.net

  4. interessierter says

    Hier ist der Code. Frei nach dem ListViewPage – Beispiel aus dem Buch.

    Ganz unten steht der generierte HTML-Code.

    Was ich gerne hätte wären ganz normale externe links, ohne JavaScript. Wie geht das?

    package de.wicketpraxis.findfiles.pages;

    import java.util.Arrays;

    import org.apache.wicket.markup.html.WebPage;
    import org.apache.wicket.markup.html.basic.Label;
    import org.apache.wicket.markup.html.link.ExternalLink;
    import org.apache.wicket.markup.html.list.ListItem;
    import org.apache.wicket.markup.html.list.ListView;

    public class ListViewPage extends WebPage {

    public ListViewPage() {

    add(new ListView(“list”, Arrays.asList(new ExternalLink(
    “part1″, “http://www.google.de”, “http://www.google.de”), new ExternalLink(“part1″, “http://www.findfiles.net”,
    “http://www.findfiles.net”))) {

    @Override
    protected void populateItem(ListItem item) {
    ExternalLink text = item.getModelObject();
    item.add(text);
    }

    });
    }
    }

    • admin says

      Wie sieht denn das Html der Ergebnisseite aus? Sollte man nicht eher die Liste der Links (also der url) übergeben und dann


      String url=item.getModelObject();
      item.add(new ExternalLink("link",url,url);

      schreiben?

  5. interessierter says

    hier nochmal der von Dir vorgeschlagene Code:

    add(new ListView(“list”,Arrays.asList(“http://www.google.de/”, “http://www.findfiles.net/”)) {

    @Override
    protected void populateItem(ListItem item) {
    String url=item.getModelObject();
    item.add(new ExternalLink(“link”,url,url));
    }

    });

    Hier die Html Datei. Habe die eckigen Klammern mit Geschweiften ersetzt. Es wird Javascript ausgegeben. Ich hätte gerne {a href=http….} linktext {/a} . Wie kann ich das mit Wicket machen?

    {html}
    {head}
    {title}Start{/title}
    {/head}
    {body}
    {table}
    {tr}
    {td}{strong}{span onclick=”window.location.href=’http://www.google.de/’;return false;”}http://www.google.de/{/span}{/strong}{/td}
    {/tr}{tr}
    {td}{strong}{span onclick=”window.location.href=’http://www.findfiles.net/’;return false;”}http://www.findfiles.net/{/span}{/strong}{/td}

    {/tr}
    {/table}
    {/body}
    {/html}

    • interessierter says

      Eine Idee, wie man externe Links ohne Javascript im Html-Code bekommt?

      • michael says

        Ich glaube, die Lösung ist extrem einfach. Mann muss nur statt {span wicket:id=”link”}{/span} {a wicket:id=”link” }{/a} schreiben. Das Mitdenken von Wicket ist hier zum Verhängnis geworden. Wenn Wicket statt eines Links etwas anderes bekommt, dann versucht er das über javascript zu lösen.

  6. interessierter says

    Ich verstehe den Satz nicht: “Mann muss nur statt -> schreiben.”

    • michael says

      Habe den Kommentar berichtigt.. hoffentlich ist es jetzt klarer. :)

  7. interessierter says

    Super! Danke, Michael. Hat geklappt.

    Übrigens, tolles Buch. Lerne viel damit.

  8. michael says

    Gern geschehen.. :)
    Wenn Du mir Feedback zu den Stellen im Buch geben möchtest, die in deinen Augen nicht so gut geschrieben waren oder sonstige Kritik, dann gern per E-Mail. Oder auch als Kommentar..



Some HTML is OK

or, reply to this post via trackback.