Looking for wicket Answers? Try Ask4KnowledgeBase
Looking for wicket Keywords? Try Ask4Keywords

wicketKomma igång med wicket


Anmärkningar

Wicket är ett komponentbaserat ramverk som sätter den i skarp kontrast till några av de tidigare lösningarna på den ibland monotona uppgiften med webbprogrammering. Liksom andra ramverk bygger Wicket ovanpå Suns servlet-API.

Till skillnad från ramar som Struts eller Spring MVC tas den utvecklare som använder Wicket mestadels bort från begäran / svarets natur som ingår i webben och Servlets. Istället för att bygga kontroller som måste betjäna många användare och trådar samtidigt, ta in förfrågningar, returnera svar och aldrig lagra något tillstånd, tror Wicket-utvecklaren när det gäller tillståndskomponenter. I stället för att skapa en kontroller eller åtgärdsklass skapar han eller hon en sida, placerar komponenter på den och definierar hur varje komponent reagerar på användarinmatning.

Wicket använder vanlig XHTML för mallar. Varje komponent är bunden till ett namngivet element i XHTML och blir ansvarigt för att återge det elementet i den slutliga utgången. Sidan är helt enkelt den komponent som innehåller toppnivån och är i par med exakt en XHTML-mall.

Varje komponent stöds av sin egen modell, som representerar komponentens tillstånd. Ramverket har inte kunskap om hur komponenter interagerar med sina modeller, som behandlas som ogenomskinliga objekt som automatiskt serielliseras och kvarstår mellan förfrågningar. Mer komplexa modeller kan emellertid göras avtagbara och tillhandahålla krokar för att anordna sin egen lagring och restaurering i början och slutet av varje begäran.

I Wicket hanteras alla serversides tillstånd automatiskt. Du bör aldrig direkt använda ett HttpSession-objekt eller liknande omslag för att lagra tillstånd. I stället är tillstånd associerat med komponenter. Varje serversidekomponent har en kapslad hierarki med tillståndsfulla komponenter, där varje komponents modell i slutändan är ett POJO (Plain Old Java Object).

versioner

Version Utgivningsdatum
8.0.0-M4 2017/02/07
7.6.0 2016/12/29
6.26.0 2016/12/29

Installation eller installation

Min första Wicket-installation, app som visar Hello World på hemskärmen:

import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
    
    public HelloWorldApplication() {
    }
    
    @Override
    public Class getHomePage() {
        return HelloWorld.class;
    }
}
 

HelloWorld.java

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
    public HelloWorld() {
        add(new Label("message", "Hello World!"));
    }
}
 

HelloWorld.html

<html>
   <body>
       <span wicket:id="message">Message goes here</span>
    </body>
</html>
 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>My first Wicket App</display-name>
    <filter>
        <filter-name>HelloWorldApplication</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
          <param-name>applicationClassName</param-name>
          <param-value>org.apache.wicket.examples.helloworld.HelloWorldApplication</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>HelloWorldApplication</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
 

pom.xml

    <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-core</artifactId>
        <version>${wicket.version}</version>
    </dependency>