Webframework

Was ist Apache Wicket?

Titel

Apache Wicket

Hersteller

Apache Software Foundation

Lizenz

Apache 2.0

Download
Link

Das Webframework Wicket wurde 2004 von Jonathan Locke und Miko Matsumura entwickelt und ist seit 2007 als Apache-Top-Level-Projekt Open Source verfügbar. Hauptgedanke des Frameworks ist die Trennung von in Java geschriebener Logik und der Darstellung in HTML bzw. CSS. Gemäß dem Grundsatz „Just Java, just HTML and meaningful Abstractions“ definiert der Entwickler ein statisches Layout in HTML und programmiert die Dynamik objektorientiert in Java.

Hello-World-Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<head>
    <title>Wicket Examples - helloworld</title>
    <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
    <span wicket:id="mainNavigation"/>
    <span wicket:id="message" id="message">Message goes here</span>
</body>
</html>
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.wicket.examples.helloworld;

import org.apache.wicket.examples.WicketExamplePage;
import org.apache.wicket.markup.html.basic.Label;


/**
 * Everybody's favorite example!
 * 
 * @author Jonathan Locke
 */
public class HelloWorld extends WicketExamplePage
{
    /**
     * Constructor
     */
    public HelloWorld()
    {
        add(new Label("message", "Hello World!"));
    }
}


/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.wicket.examples.helloworld;

import org.apache.wicket.Page;
import org.apache.wicket.examples.WicketExampleApplication;

/**
 * Application class for hello world example.
 * 
 * @author Jonathan Locke
 */
public class HelloWorldApplication extends WicketExampleApplication
{
    /**
     * Constructor.
     */
    public HelloWorldApplication()
    {
    }

    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    @Override
    public Class<? extends Page> getHomePage()
    {
        return HelloWorld.class;
    }
}

Wicket ist strikt Komponenten-basiert, wichtiges Design-Ziel ist die Wiederverwendbarkeit von Komponenten. Eine umfangreiche Komponenten-Library stellt bereits wichtige Funktionalität bereit.

Wicket-Anwendungen bestehen aus Bäumen von Komponenten, in denen Event Handler über Listener auf Http-Ereignisse reagieren. Der Server-seitige Zustand wird automatisch verwaltet. Jede Server-Page enthält hierfür eine Hierarchie von Stateful-Komponenten, wobei die Komponentenmodelle letztlich einfache POJOs (Plain Old Java Object) sind. Wicket unterhält eine Map dieser Server-seitigen Pages in jeder Anwender-Session. Der Entwickler muss zum Speichern des Zustandes somit niemals direkt ein HttpSession Objekt oder ähnliche Wrapper verwenden.

Seit Wicket 6.0.0 kommt die JavaScript Library jQuery für Ajax-Funktionen zum Einsatz. Vorausgesetzt wird ein JDK ab Version 6.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.