JSP Action Tags
Hvad er JSP Action?
JSP-handlinger bruger konstruktionen i XML-syntaks til at kontrollere opførselen af servlet-motoren. Vi kan dynamisk indsætte en fil, genbruge beans-komponenterne, videresende brugeren til en anden side osv. gennem JSP Actions som include og forward. I modsætning til direktiver revurderes handlinger hver gang siden tilgås.
Syntaks:
<jsp:action_name attribute="value" />
I dette selvstudie lærer du om JSP Standard Actions. JSP Standard Action-tags bruges til at kontrollere servlet-motorens opførsel.
Liste over de almindeligt anvendte Action Tags i JSP
Der er 11 typer Standard Action Tags i JSP, og her er den komplette liste over dem.
Action Tag Navn | Syntaks | Tekniske beskrivelser |
---|---|---|
jsp:useBean | Bruges til at påkalde og bruge bønner på JSP-siden. | |
jsp:inkludere | Inkluderer en anden JSP-fil i den aktuelle fil under anmodningsbehandling. | |
jsp:setProperty | Indstiller egenskaben for en bønne. | |
jsp:getProperty | Henter egenskaben for en bønne og konverterer den til en streng til output. | |
jsp:frem | Videresender anmodningen til en anden JSP eller statisk side. | |
jsp:plugin | Introducerer Java komponenter som applets eller bønner ind i JSP og genererer automatisk tags. | |
jsp:body | Definerer XML-elementer, der genereres dynamisk under anmodningsbehandling. | |
jsp:tekst | skabelon tekst | Bruges til at indsætte skabelontekst i JSP-sider, der kun indeholder tekst og EL-udtryk. |
jsp:param | Sender parametre i jsp:plugin-handlingen for at tilføje ekstra data. | |
jsp:attribut | Definerer XML-attributter, der genereres dynamisk. | |
jsp:output | Angiver den XML- eller DOCTYPE-erklæring, der skal bruges i outputtet. |
jsp:useBean
- Dette handlingsnavn bruges, når vi vil bruge bønner på JSP-siden.
- Med dette tag kan vi nemt påkalde en bønne.
Syntaks for jsp: UseBean:
<jsp:useBean id="" class="" />
Her angiver den identifikatoren for denne bønne, og klassen er den fulde sti til bønneklassen
Eksempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action JSP1</title> </head> <body> <jsp:useBean id="name" class="demotest.DemoClass"> </body> </html>
Forklaring af koden:
Kodelinje 10: I ovenstående kode bruger vi "bønne-id" og "klassesti" for bønnen.
jsp:inkludere
- Det plejede også at indsætte en jsp-fil i en anden fil, ligesom at inkludere Direktiver.
- Det tilføjes under anmodningsbehandlingsfasen
Syntaks for jsp:include
<jsp:include page="page URL" flush="true/false">
Eksempel:
Action_jsp2 (kodelinje 10) vi inkluderer en date.jsp fil
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Date Guru JSP</title> </head> <body> <jsp:include page="date.jsp" flush="true" /> </body> </html>
Dato.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <p> Today's date: <%= {new java.util.Date()).toLocaleString()%> </p> </body> </html>
Forklaring af koden:
Action_jsp2.jsp
Kodelinje 10: I den første fil inkluderer vi filen date.jsp i action_jsp2.jsp
Dato.jsp:
Kodelinje 11: Vi udskriver dagens dato i kodelinje 11 i date.jsp
Når du udfører koden, er følgende output.
Output:
- Den viser dagens dato med klokkeslæt, da datofilen er inkluderet i den primære jsp
jsp:setProperty
- Denne egenskab for standardhandlinger i JSP bruges til at indstille egenskaben for bønnen.
- Vi er nødt til at definere en bønne, før vi sætter ejendommen
Syntaks:
<jsp:setproperty name="" property="" >
Her definerer navnet bønnen, hvis egenskab er sat, og egenskaben, som vi ønsker at indstille. Vi kan også indstille værdi og param attribut. Her er værdien ikke obligatorisk, og den definerer den værdi, der tildeles ejendommen. Her er param navnet på forespørgselsparameteren ved hjælp af hvilken værdi der kan hentes. Eksemplet på setproperty vil blive vist nedenfor med getproperty
jsp:getProperty
- Denne egenskab bruges til at få bønnens egenskab.
- Den konverteres til en streng og indsættes til sidst i outputtet.
Syntaks:
<jsp:getAttribute name="" property="" >
Her skal navnet på bønnen, hvorfra egenskaben skal hentes, og bønnen defineres. Egenskabsattributten er navnet på bønneegenskaben, der skal hentes.
Eksempel på setProperty og getProperty:
TestBean.java:
package demotest; import java.iO.Serializable; public class TestBean implements Serializable{ private String msg = "null"; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
Action_jsp3.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action 3</title> </head> <body> <jsp:useBean id="GuruTest" class="demotest.TestBean" /> <jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" /> <jsp:getProperty name="GuruTest" property="msg" /> </body> </html>
Forklaring af koden:
TestBean.java:
Kodelinje 5: TheTestBean implementerer den serialiserbare klasse. Det er en bønneklasse med getters-sættere i koden.
Kodelinje 7: Her tager vi den private strengvariabel msg som "null"
Kodelinje 9-14: Her bruger vi gettere og sættere af variabel "msg".
Action_jsp3.jsp
Kodelinje 10: Her bruger vi "useBean" tag, hvor det specificerer bønnen dvs. TestBean som skal bruges i denne jsp klasse
Kodelinje 11: Her indstiller vi værdien for egenskaben msg for bean TestBean som "GuruTutorial."
CodeLine12: Her ved hjælp af getProperty får vi værdien af egenskaben msg for bean TestBean dvs. GuruTutorial, som er der i outputtet
Når du udfører ovenstående kode får du følgende output:
Output:
I dette eksempel, ved hjælp af TestBean, forsøger vi at indstille egenskaben "gurutest" ved hjælp af setProperty og få værdien af egenskaben ved hjælp af getProperty som "GuruTutorial"
jsp:frem
Det bruges til at videresende anmodningen til en anden jsp eller en hvilken som helst statisk side.
Her kan anmodningen videresendes uden parametre eller med parametre.
Syntaks:
<jsp:forward page="value">
Her repræsenterer værdien, hvor anmodningen skal videresendes.
Eksempel:
Action_jsp41.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action JSP1</title> </head> <body> <jsp:forward page="jsp_action_42.jsp" /> </body> </html>
Jsp_action_42.jsp
Guru Action JSP2</title> </head> <body> <a>This is after forward page</a> </body> </html>
Forklaring af koden
Action_jsp41.jsp
Kodelinje 10: Her bruger vi forward JSP Action til at videresende anmodningen til siden nævnt i attributten, dvs. jsp_action_42.jsp
Jsp_action_42.jsp
Kodelinje 10: Når vi kalder action_jsp41.jsp, bliver anmodningen videresendt til denne side, og vi får outputtet som "Dette er efter videresendelsesside."
Når vi udfører ovenstående kode, får vi følgende output
Output:
Vi kalder action_jsp41.jsp, men anmodningen videresendes til jsp_action_42.jsp, og vi får output fra den side som "Dette er efter videresendelsesside".
jsp:plugin
- Det bruges til at introducere Java komponenter til jsp, dvs. java-komponenterne kan enten være en applet eller bønne.
- Den registrerer browseren og tilføjer eller JSP-tags ind i filen
Syntaks:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- Her angiver typen enten et objekt eller en bønne
- Koden angiver klassenavnet på applet eller bønne
- Kodebase indeholder basis-URL'en, der indeholder filer med klasser
jsp:param
- Dette er underordnet objekt af plugin-objektet beskrevet ovenfor
- Den skal indeholde en eller flere handlinger for at angive yderligere parametre.
Syntaks:
<jsp:params> <jsp:param name="val" value="val"/ > </jsp:params>
Eksempel på plugin og param
Action_jsp5.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action guru jsp5</title> </head> <body> <jsp:plugin type="bean" code="Student.class" codebase="demotest.Student"> <jsp:params> <jsp:param name="id" value="5" /> <jsp:param name="name" value="guru" /> </jsp:params> </jsp:plugin> </body> </html>
Student.java
package demotest; import java.io.Serializable; public class Student implements Serializable { public String getName () { return name; } public void setName (String name) { this.name = name; } public int getId() { return id; } public void setId (int id) { this.id = id; } private String name = "null"; private int id = 0; }
Forklaring af koden:
Action_jsp5.jsp
Kodelinje 10: Her tager vi jsp: plugin-objekt, hvor vi tager tre attributter
- Type – i dette tilfælde er det bønne
- Kodenavn på filen
- Kodebase – sti med pakkenavnet
Kodelinje 11-14: Her tager vi jsp: params-objektet, hvorunder der er et underordnet param-objekt med attributterne navn og værdi, og vi indstiller værdierne for id og navn i disse attributter.
Student.java
Kode 7-17: Vi bruger gettere og sættere til variabler id og navn
Kode 19-20: vi initialiserer variablerne id og navn.
Her vil vi få output i det tilfælde, hvor de indstillede værdier af param vil blive brugt i Student Bean. I dette tilfælde vil vi ikke have noget output, da vi bare indstiller og får værdier for param, men ikke udskriver det nogen steder.
jsp:body
- Dette tag bruges til at definere XML dynamisk, dvs Elements kan generere under anmodningstid end kompileringstid.
- Det definerer faktisk XML, som er genereret dynamisk elementlegeme.
Syntaks:
<jsp:body></jsp:body>
Her skriver vi XML body tag inden for disse tags
jsp:attribut
- Dette tag bruges til at definere XML dynamisk, dvs. elementerne kan genereres under anmodningstid end kompileringstid
- Det definerer faktisk XML-attributten, som vil blive genereret dynamisk.
Syntaks:
<jsp:attribute></jsp:attribute>
Her skriver vi attributtag af XML.
Eksempel på krop og egenskab:
Action_jsp6.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action Guru JSP6</title> </head> <body> <jsp:element name="GuruXMLElement"> <jsp:attribute name="GuruXMLattribute"> Value </jsp:attribute> <jsp:body>Guru XML</jsp:body> </jsp:element> </body> </html>
Forklaring af koden:
Kodelinje 10: Her definerer vi element, som dynamisk genereres som XML, og dens navn vil være GuruXMLElement
Kodelinje 11-13: Her definerer vi en attribut, som vil XML-attribut for den dynamisk genererede XML.
Kodelinje 14: Her har vi kropshandling, hvor vi skriver XML-kroppen, som vil blive genereret i dynamisk XML.
Når du udfører ovenstående kode, får du følgende output:
Output:
Her får vi output fra body-tagget af genereret XML.
jsp:tekst
- Den bruges til at skabe skabeloner for tekst på JSP-sider.
- Dens krop indeholder ikke andre elementer, og den indeholder kun tekst og EL-udtryk.
Syntaks:
<jsp:text>template text</jsp:text>
Her refererer skabelontekst kun til skabelontekst (som kan være enhver generisk tekst, som skal udskrives på jsp ) eller evt. EL udtryk.
Eksempel:
Action_jsp7.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action JSP7</title> </head> <body> <jsp:text>Guru Template Text</jsp:text> </body> </html>
Forklaring af koden:
Kodelinje 10: Her tager vi tekstobjekt for at udskrive skabelonteksten
Når du udfører ovenstående kode, får du følgende output
Output:
Vi får Guru Template Text, som er placeret i teksthandlingsobjekter.
jsp:output
- Den specificerer XML-deklarationen eller DOCTYPE-deklarationen af jsp
- XML-deklarationen og DOCTYPE erklæres af outputtet
Syntaks:
<jsp:output doctype-root-element="" doctype-system="">
Her angiver doctype-root-element rodelementet i XML-dokumentet i DOCTYPE. Doctype-system angiver doctype, som genereres i output og giver systemet bogstaveligt
Eksempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action Guru JSP8</title> </head> <body> <jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/> </body> </html>
Forklaring af koden:
Kodelinje 10: Her bruger vi output handling objekt til at generere en DOCTYPE, og internt vil den blive genereret i dette format:
Der vil ikke være noget output for dette, da dette vil blive genereret internt.