Java-visningsteknologier og -rammer - Java view technologies and frameworks

Java-visningsteknologier og -rammer er nettbaserte programvarebiblioteker som gir brukergrensesnittet , eller " visningslag ", til Java- webapplikasjoner . Slike applikasjonsrammer brukes til å definere websider og håndtere HTTP- forespørsler (klikk) generert av disse websidene. Som en underkategori av nettrammer , overlapper ofte visningslagsrammer i ulik grad med nettrammer som gir annen funksjonalitet for Java-webapplikasjoner.

Rammer for Java-visningssjikt hevder ofte å støtte deler av eller hele design-mønsteret for modell-visning-kontroller .

På et øyeblikk

Handlingsbaserte rammer: Apache Struts , Spring MVC
Komponentbaserte rammer: Apache Click , Apache Tapestry , Apache Wicket , JavaServer Faces
Nettmalsystemer: Apache Tiles , SiteMesh , Thymeleaf

Servlet API

Servlet API er grunnlaget for nesten alle Java Web View-teknologier. Servlet gir den grunnleggende mekanismen for å skrive Java- klasser for webapplikasjoner. Servlets kan svare på HTTP-forespørsler, lage informasjonskapsler og vedlikeholde økter.

JavaServer Pages (JSP)

  • Bygget på toppen av Servlet API, gir JSP en dokumentsentriske, tagbaserte maler, serverprogrammeringsmodell som kan generere mange former for tekstlig innhold.
  • Java-kode kan være innebygd i JSP-filer og blir samlet og utført når en forespørsel mottas.

Apache Struts

  • Struts sørger for en frakobling av kontrolleren og utsikten.
  • Forespørsler mottas av en Java Class (Controller) som kan bestemme hvilken Vis som skal vises.
  • Selve visningen kan skrives i forskjellige visningsteknologier, som JSP, gratis markørmal, hastighetsmal etc.
  • En XML- konfigurasjonsfil brukes til å spesifisere "Page Navigation", dvs. flyten av forespørselen til den aktuelle kontrolleren, og hvilken visning som skal vises basert på resultatet av kontrolleren.
  • Konkurrent : Spring MVC, Grails

Apache-billedvev

  • En komponentbasert visningsramme.
  • Klassene skrives som POJOs og byte-kode transformert ved kjøretid
  • Konfigurert med merknader og navnekonvensjoner i stedet for XML
  • Sammenlignet med JSPer, håndhever en tydelig separasjon av HTML-merking og Java-kode.
  • HTML-maler kan forhåndsvises direkte av nettdesignere
  • Endrede komponentklasser blir lagt om på nytt til å kjøre applikasjoner for raskere utvikling.
  • Bruker Innlegg / Omdirigere / Få navigasjonsmønster for skjemainnlevering.
  • Konkurrent : Wicket, JSF, HybridJava

Apache Wicket

  • En komponentbasert visningsramme.
  • Sider samhandler direkte med stateful Java-komponenter på serveren.
  • Komponenter og deres tilstand administreres av Wicket-rammeverket, og frigjør applikasjonsutvikleren fra å måtte bruke HttpSession direkte for å administrere tilstanden.
  • Krever ikke XML for konfigurasjon.
  • Sammenlignet med JSPer, håndhever en tydelig separasjon av HTML-merking og Java-kode.
  • Nettsidekomponenter blir "dyttet" inn i HTML-merkingen fra koden.
  • Konkurrent : Tapestry, JSF, HybridJava

JavaServer Faces (JSF) og Facelets

  • En spesifikasjon for komponentbaserte visningsrammer.
  • Mojarra og Apache MyFaces implementeringer er tilgjengelige
  • Bruker vanligvis Facelets for XML / XHTML-basert maling.
  • Klasser skrives som POJO-er, med merknader eller XML-konfigurasjonsfiler som brukes til å knytte dem til side- og komponentmaler.
  • Den Unified Expression Language -muliggjør binding komponentfelt og arrangementer for å POJO bønne egenskaper og metoder.
  • Konverterings- og valideringsbegrensninger kan spesifiseres i Facelets og blir automatisk brukt, noe som normalt resulterer i omlegging av samme side med feilinformasjon i tilfelle feil.
  • Navigering kan foregå via konfigurasjonsfileregler eller direkte spesifisert på siden.
  • Kan transparent støtte Ajax .
  • Konkurrent : Wicket, tapestry

SiteMesh

  • SiteMesh er et HTML-templeringsramme basert på "Dekorasjon" -modellen.
  • Det gjør det mulig å opprette en 'dekorasjon' mal som deretter brukes til hvilken som helst annen HTML for å generere en ny HTML.
  • Den nylig genererte HTML inneholder elementer fra den originale HTML blandet inn i malen.
  • Dette gjør at den opprinnelige HTML-filen er veldig enkel og blottet for formatering eller layout-spesifikasjoner. Malen er på sin side blottet for faktisk informasjon.
  • Å blande de to gir en jevn utseende og følelse for alle websider .
  • Konkurrent : Fliser

Gnist

  • Gnist av et mikrobindramme som er bygget rundt et enkelt rutesystem
  • Den kjøres på en innebygd Jetty -webserver som standard, men kan konfigureres til å kjøres på andre webservere.
  • Den støtter tre forskjellige malmotorer : Velocity , FreeMarker og Mustasche
  • Den har som mål å legge til rette for rask utvikling, og benytter seg ikke av merknader eller proprietære løsninger.


Se også