Tagi akcji JSP
Co to jest akcja JSP?
Akcje JSP wykorzystują konstrukcję w składni XML do kontrolowania zachowania silnika serwletu. Możemy dynamicznie wstawiać plik, ponownie wykorzystywać komponenty fasoli, przekazywać użytkownika na inną stronę itp. za pomocą akcji JSP, takich jak dołączanie i przesyłanie dalej. W przeciwieństwie do dyrektyw, działania są poddawane ponownej ocenie przy każdym wejściu na stronę.
Składnia:
<jsp:action_name attribute="value" />
W tym samouczku poznasz standardowe akcje JSP. Tagi standardowych akcji JSP służą do kontrolowania zachowania silnika serwletu.
Lista powszechnie używanych tagów akcji w JSP
W JSP występuje 11 typów standardowych znaczników akcji. Oto ich pełna lista.
Nazwa znacznika akcji | Składnia | Opis |
---|---|---|
jsp:useBean | Służy do wywoływania i używania obiektów bean na stronie JSP. | |
jsp: uwzględnij | Dodaje inny plik JSP do bieżącego pliku podczas przetwarzania żądania. | |
jsp:setProperty | Ustawia właściwość ziarna. | |
jsp:getProperty | Pobiera właściwość ziarna i konwertuje ją na ciąg znaków do wyprowadzenia. | |
jsp: do przodu | Przekazuje żądanie do innego JSP lub strony statycznej. | |
jsp: wtyczka | Przedstawia Java komponenty takie jak aplety czy ziarna do JSP i automatycznie generuje tagi. | |
jsp:treść | Definiuje elementy XML, które są generowane dynamicznie podczas przetwarzania żądania. | |
jsp:tekst | tekst szablonu | Służy do wstawiania tekstu szablonu do stron JSP zawierających tylko tekst i wyrażenia EL. |
jsp:parametry | Przekazuje parametry w ramach akcji jsp:plugin w celu dodania dodatkowych danych. | |
jsp:atrybut | Definiuje atrybuty XML, które są generowane dynamicznie. | |
jsp:wyjście | Określa deklarację XML lub DOCTYPE, która ma zostać użyta w danych wyjściowych. |
jsp:useBean
- Ta nazwa akcji jest używana, gdy chcemy użyć komponentów bean na stronie JSP.
- Za pomocą tego tagu możemy łatwo wywołać komponent bean.
Składnia jsp: UseBean:
<jsp:useBean id="" class="" />
Tutaj określa identyfikator tego komponentu bean, a klasa jest pełną ścieżką do klasy komponentu bean
Przykład:
<%@ 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>
Wyjaśnienie kodu:
Linia kodu 10: W powyższym kodzie używamy „identyfikatora komponentu bean” i „ścieżki klasy” komponentu bean.
jsp: uwzględnij
- Służyło również do wstawiania pliku jsp do innego pliku, podobnie jak w przypadku dołączania Dyrektywy.
- Jest dodawany na etapie przetwarzania żądania
Składnia jsp:include
<jsp:include page="page URL" flush="true/false">
Przykład:
Action_jsp2 (wiersz kodu 10) dołączamy plik date.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>Date Guru JSP</title> </head> <body> <jsp:include page="date.jsp" flush="true" /> </body> </html>
Data.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>
Wyjaśnienie kodu:
Akcja_jsp2.jsp
Linia kodu 10: W pierwszym pliku umieszczamy plik date.jsp w action_jsp2.jsp
Data.jsp:
Linia kodu 11: Drukujemy dzisiejszą datę w linii 11 kodu w date.jsp
Po wykonaniu kodu otrzymasz następujący wynik.
Wyjście:
- Wyświetla dzisiejszą datę z czasem, ponieważ plik daty znajduje się w głównym pliku jsp
jsp:setProperty
- Ta właściwość standardowych akcji w JSP służy do ustawiania właściwości komponentu bean.
- Musimy zdefiniować komponent bean przed ustawieniem właściwości
Składnia:
<jsp:setproperty name="" property="" >
Tutaj nazwa definiuje bean, którego właściwość jest ustawiona i właściwość, którą chcemy ustawić. Możemy również ustawić atrybut value i param. Tutaj value nie jest obowiązkowe i definiuje wartość, która jest przypisana do właściwości. Tutaj param jest nazwą parametru żądania, za pomocą którego można pobrać wartość. Przykład setproperty zostanie zademonstrowany poniżej za pomocą getproperty
jsp:getProperty
- Ta właściwość jest używana do uzyskania właściwości komponentu bean.
- Konwertuje na ciąg znaków i na koniec wstawia go na wyjście.
Składnia:
<jsp:getAttribute name="" property="" >
Tutaj nazwa beana, z którego właściwość ma zostać pobrana, oraz bean powinien zostać zdefiniowany. Atrybut property to nazwa właściwości beana, która ma zostać pobrana.
Przykład setProperty i 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; } }
Akcja_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>
Wyjaśnienie kodu:
TestBean.java:
Linia kodu 5: TheTestBean implementuje klasę serializowalną. Jest to klasa fasoli z modułami pobierającymi w kodzie.
Linia kodu 7: Tutaj bierzemy prywatną zmienną łańcuchową msg jako „null”
Linia kodu 9-14: Tutaj używamy modułów pobierających i ustawiających zmienną „msg”.
Akcja_jsp3.jsp
Linia kodu 10: Tutaj używamy znacznika „useBean”, który określa komponent bean, czyli TestBean, który ma zostać użyty w tej klasie jsp
Linia kodu 11: Tutaj ustawiamy wartość właściwości msg dla komponentu bean TestBean jako „GuruTutorial”.
CodeLine12: Tutaj za pomocą getProperty otrzymujemy wartość właściwości msg dla komponentu bean TestBean, tj. GuruTutorial, która znajduje się na wyjściu
Po wykonaniu powyższego kodu otrzymasz następujący wynik:
Wyjście:
W tym przykładzie, używając TestBean, próbujemy ustawić właściwość „gurutest” za pomocą setProperty i uzyskać wartość właściwości za pomocą getProperty jako „GuruTutorial”
jsp: do przodu
Służy do przekazania żądania do innego pliku jsp lub dowolnej strony statycznej.
Tutaj żądanie może zostać przekazane bez parametrów lub z parametrami.
Składnia:
<jsp:forward page="value">
Tutaj wartość reprezentuje miejsce, w którym żądanie musi zostać przekazane.
Przykład:
Akcja_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>
Wyjaśnienie kodu
Akcja_jsp41.jsp
Linia kodu 10: Tutaj używamy forward JSP Action, aby przekazać żądanie do strony wymienionej w atrybucie, tj. jsp_action_42.jsp
Jsp_action_42.jsp
Linia kodu 10: Po wywołaniu action_jsp41.jsp żądanie zostanie przekazane na tę stronę i otrzymamy komunikat „To jest po przesłaniu strony”.
Po wykonaniu powyższego kodu otrzymamy następujący wynik
Wyjście:
Wywołujemy action_jsp41.jsp, ale żądanie jest przekazywane do jsp_action_42.jsp i otrzymujemy wynik z tej strony jako „To jest po przesłaniu strony”.
jsp: wtyczka
- Służy do przedstawienia Java komponentów do jsp, co oznacza, że komponenty Java mogą być apletem lub komponentem bean.
- Wykrywa przeglądarkę i dodaje Lub Znaczniki JSP do pliku
Składnia:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- Tutaj typ określa obiekt lub komponent bean
- Kod określa nazwę klasy apletu lub komponentu bean
- Baza kodu zawiera podstawowy adres URL, który zawiera pliki klas
jsp:parametry
- Jest to obiekt potomny obiektu wtyczki opisanego powyżej
- Musi zawierać jedną lub więcej akcji, aby zapewnić dodatkowe parametry.
Składnia:
<jsp:params> <jsp:param name="val" value="val"/ > </jsp:params>
Przykład wtyczki i parametru
Akcja_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; }
Wyjaśnienie kodu:
Akcja_jsp5.jsp
Linia kodu 10: Tutaj bierzemy obiekt jsp: plugin, z którego pobieramy trzy atrybuty
- Typ – w tym przypadku jest to fasola
- Kod-nazwa pliku
- Codebase – ścieżka z nazwą pakietu
Linia kodu 11-14: Tutaj bierzemy obiekt jsp: params, pod którym znajduje się potomny obiekt param z atrybutami name i value, i ustawiamy w tych atrybutach wartości id i name.
Student.java
Kod 7-17: Używamy getterów i setterów dla zmiennych id i name
Kod 19-20: inicjujemy zmienne id i name.
Tutaj otrzymamy wynik w przypadku, gdy ustawione wartości parametru zostaną użyte w Student Bean. W tym przypadku nie będziemy mieli żadnych wyników, ponieważ po prostu ustawiamy i pobieramy wartości parametru, ale nigdzie ich nie drukujemy.
jsp:treść
- Ten znacznik służy do dynamicznego definiowania XML, tj Elementy może wygenerować w czasie żądania niż w czasie kompilacji.
- Właściwie definiuje XML, w którym generowana jest dynamicznie treść elementu.
Składnia:
<jsp:body></jsp:body>
Tutaj zapisujemy znacznik treści XML w obrębie tych znaczników
jsp:atrybut
- Znacznik ten służy do dynamicznego definiowania XML, tzn. elementy mogą być generowane w czasie żądania, a nie w czasie kompilacji
- Właściwie definiuje atrybut XML, który będzie generowany dynamicznie.
Składnia:
<jsp:attribute></jsp:attribute>
Tutaj piszemy znacznik atrybutu XML.
Przykład treści i atrybutu:
Akcja_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>
Wyjaśnienie kodu:
Linia kodu 10: Tutaj definiujemy element, który jest dynamicznie generowany jako XML, a jego nazwa będzie brzmieć GuruXMLElement
Linia kodu 11-13: Tutaj definiujemy atrybut, który będzie atrybutem XML dynamicznie generowanego XML.
Linia kodu 14: Tutaj mamy akcję treściową, w której piszemy treść XML, która będzie generowana dynamicznie w formacie XML.
Po wykonaniu powyższego kodu otrzymasz następujący wynik:
Wyjście:
Tutaj otrzymujemy dane wyjściowe ze znacznika treści wygenerowanego XML.
jsp:tekst
- Służy do szablonowania tekstu na stronach JSP.
- Jego ciało nie zawiera żadnych innych elementów i zawiera jedynie tekst i wyrażenia EL.
Składnia:
<jsp:text>template text</jsp:text>
W tym przypadku tekst szablonu odnosi się tylko do tekstu szablonu (który może być dowolnym tekstem ogólnym, który należy wydrukować w formacie jsp) lub dowolnym Wyrażenie EL.
Przykład:
Akcja_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>
Wyjaśnienie kodu:
Linia kodu 10: Tutaj bierzemy obiekt tekstowy, aby wydrukować tekst szablonu
Po wykonaniu powyższego kodu otrzymasz następujący wynik
Wyjście:
Otrzymujemy tekst szablonu Guru, który jest umieszczany w tekstowych obiektach akcji.
jsp:wyjście
- Określa deklarację XML lub deklarację DOCTYPE jsp
- Deklaracja XML i DOCTYPE są deklarowane na wyjściu
Składnia:
<jsp:output doctype-root-element="" doctype-system="">
Tutaj doctype-root-element wskazuje element główny dokumentu XML w DOCTYPE. Doctype-system wskazuje doctype, który jest generowany w wyjściu i podaje literał systemowy
Przykład:
<%@ 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>
Wyjaśnienie kodu:
Linia kodu 10: Tutaj używamy obiektu akcji wyjściowej do wygenerowania DOCTYPE i wewnętrznie zostanie on wygenerowany w tym formacie:
Nie będzie żadnych wyników, ponieważ zostaną one wygenerowane wewnętrznie.