JSP Action Tags
Co je JSP Action?
Akce JSP používají konstrukci v syntaxi XML k řízení chování servletového stroje. Můžeme dynamicky vložit soubor, znovu použít komponenty fazolí, přesměrovat uživatele na jinou stránku atd. prostřednictvím akcí JSP, jako je include a forward. Na rozdíl od direktiv jsou akce znovu vyhodnoceny při každém přístupu na stránku.
Syntaxe:
<jsp:action_name attribute="value" />
V tomto tutoriálu se dozvíte o standardních akcích JSP. Značky standardní akce JSP se používají k řízení chování servletového enginu.
Seznam běžně používaných značek akcí v JSP
V JSP existuje 11 typů značek standardních akcí a zde je jejich kompletní seznam.
Název značky akce | Syntax | Description |
---|---|---|
jsp:useBean | Používá se k vyvolání a použití beanů na stránce JSP. | |
jsp:include | Zahrne další soubor JSP do aktuálního souboru během zpracování požadavku. | |
jsp:setProperty | Nastavuje vlastnost fazole. | |
jsp:getProperty | Načte vlastnost beanu a převede ji na řetězec pro výstup. | |
jsp:forward | Předá požadavek na jinou stránku JSP nebo statickou stránku. | |
jsp:plugin | Představuje Java komponenty jako applety nebo beany do JSP a automaticky generuje značky. | |
jsp:body | Definuje prvky XML, které se generují dynamicky během zpracování požadavku. | |
jsp:text | text šablony | Používá se k vložení textu šablony do stránek JSP, které obsahují pouze text a výrazy EL. |
jsp:param | Předá parametry v rámci akce jsp:plugin pro přidání dalších dat. | |
jsp:attribute | Definuje atributy XML, které se generují dynamicky. | |
jsp:výstup | Určuje deklaraci XML nebo DOCTYPE, která se má použít ve výstupu. |
jsp:useBean
- Tento název akce se používá, když chceme na stránce JSP použít beany.
- S tímto tagem můžeme snadno vyvolat fazoli.
Syntaxe jsp: UseBean:
<jsp:useBean id="" class="" />
Zde specifikuje identifikátor pro tento bean a třída je úplná cesta ke třídě bean
Příklad:
<%@ 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>
Vysvětlení kódu:
10. řádek kódu: Ve výše uvedeném kódu používáme „bean id“ a „class path“ beanu.
jsp:include
- Také se používal pro vložení souboru jsp do jiného souboru, stejně jako včetně Směrnice.
- Přidává se ve fázi zpracování požadavku
Syntaxe jsp:include
<jsp:include page="page URL" flush="true/false">
Příklad:
Action_jsp2 (kódový řádek 10) zahrnujeme soubor 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>
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>Insert title here</title> </head> <body> <p> Today's date: <%= {new java.util.Date()).toLocaleString()%> </p> </body> </html>
Vysvětlení kódu:
Action_jsp2.jsp
10. řádek kódu: V prvním souboru začleňujeme soubor date.jsp do action_jsp2.jsp
Date.jsp:
11. řádek kódu: Tiskneme dnešní datum na řádku kódu 11 v date.jsp
Když spustíte kód, následuje výstup.
Výstup:
- Zobrazuje dnešní datum s časem, protože datový soubor je součástí hlavního jsp
jsp:setProperty
- Tato vlastnost standardních akcí v JSP se používá k nastavení vlastnosti beanu.
- Před nastavením vlastnosti musíme definovat bean
Syntaxe:
<jsp:setproperty name="" property="" >
Zde název definuje bean, jehož vlastnost je nastavena a vlastnost, kterou chceme nastavit. Také můžeme nastavit atribut value a param. Zde hodnota není povinná a definuje hodnotu, která je vlastnosti přiřazena. Zde param je název parametru požadavku, pomocí kterého lze hodnotu načíst. Příklad setproperty bude demonstrován níže s getproperty
jsp:getProperty
- Tato vlastnost se používá k získání vlastnosti fazole.
- Převede na řetězec a nakonec vloží do výstupu.
Syntaxe:
<jsp:getAttribute name="" property="" >
Zde by měl být definován název bobu, ze kterého má být vlastnost načtena a bobu. Atribut property je název vlastnosti bean, která má být načtena.
Příklad setProperty a 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>
Vysvětlení kódu:
TestBean.java:
5. řádek kódu: TheTestBean implementuje serializovatelnou třídu. Jedná se o třídu fazolí s getry settery v kódu.
7. řádek kódu: Zde bereme soukromou řetězcovou proměnnou msg jako „null“
Řádek kódu 9-14: Zde používáme getry a settery proměnné „msg“.
Action_jsp3.jsp
10. řádek kódu: Zde používáme značku „useBean“, kde specifikuje bean, tj. TestBean, který musí být použit v této třídě jsp
11. řádek kódu: Zde nastavujeme hodnotu vlastnosti msg pro bean TestBean jako „GuruTutorial“.
CodeLine12: Zde pomocí getProperty získáváme hodnotu vlastnosti msg pro bean TestBean, tj. GuruTutorial, který je ve výstupu
Když spustíte výše uvedený kód, získáte následující výstup:
Výstup:
V tomto příkladu se pomocí TestBean pokoušíme nastavit vlastnost „gurutest“ pomocí setProperty a získat hodnotu vlastnosti pomocí getProperty jako „GuruTutorial“
jsp:forward
Používá se k předání požadavku jinému jsp nebo jakékoli statické stránce.
Zde může být požadavek předán bez parametrů nebo s parametry.
Syntaxe:
<jsp:forward page="value">
Zde hodnota představuje, kam má být požadavek předán.
Příklad:
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>
Vysvětlení kódu
Action_jsp41.jsp
10. řádek kódu: Zde používáme forward JSP Action k předání požadavku na stránku uvedenou v atributu, tj. jsp_action_42.jsp
Jsp_action_42.jsp
10. řádek kódu: Jakmile zavoláme action_jsp41.jsp, požadavek se přesměruje na tuto stránku a dostaneme výstup jako „Toto je po přesměrování stránky“.
Když provedeme výše uvedený kód, dostaneme následující výstup
Výstup:
Zavoláme action_jsp41.jsp, ale požadavek bude předán na jsp_action_42.jsp a dostaneme výstup z této stránky jako „Toto je po stránce vpřed“.
jsp:plugin
- Používá se k představení Java komponenty do jsp, tj. komponenty java mohou být buď applet, nebo bean.
- Detekuje prohlížeč a přidá nebo JSP tagy do souboru
Syntaxe:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- Zde typ určuje buď objekt, nebo fazole
- Kód určuje název třídy appletu nebo beanu
- Báze kódu obsahuje základní adresu URL, která obsahuje soubory tříd
jsp:param
- Toto je podřízený objekt objektu pluginu popsaného výše
- Musí obsahovat jednu nebo více akcí pro poskytnutí dalších parametrů.
Syntaxe:
<jsp:params> <jsp:param name="val" value="val"/ > </jsp:params>
Příklad pluginu a 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; }
Vysvětlení kódu:
Action_jsp5.jsp
10. řádek kódu: Zde bereme objekt jsp: plugin, kde bereme tři atributy
- Typ – v tomto případě je to fazole
- Kódové jméno souboru
- Codebase – cesta s názvem balíčku
Řádek 11–14 kódu: Zde bereme objekt jsp: params, pod kterým je podřízený objekt param s atributy name a value a v těchto atributech nastavujeme hodnoty id a name.
Student.java
Kód 7-17: Pro proměnné id a name používáme getry a settery
Kód 19-20: inicializujeme proměnné id a name.
Zde získáme výstup v případě, že nastavené hodnoty param budou použity ve Student Bean. V tomto případě nebudeme mít žádný výstup, protože pouze nastavujeme a získáváme hodnoty param, ale nikam to netiskneme.
jsp:body
- Tato značka se používá k dynamické definici XML, tj Prvky může generovat během doby požadavku než v době kompilace.
- Ve skutečnosti definuje XML, který je generován dynamicky tělo prvku.
Syntaxe:
<jsp:body></jsp:body>
Zde zapisujeme značku XML body do těchto značek
jsp:attribute
- Tato značka se používá k dynamickému definování XML, tj. prvky mohou být generovány během doby požadavku než během doby kompilace
- Vlastně definuje atribut XML, který bude generován dynamicky.
Syntaxe:
<jsp:attribute></jsp:attribute>
Zde napíšeme atribut tag XML.
Příklad těla a atributu:
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>
Vysvětlení kódu:
10. řádek kódu: Zde definujeme prvek, který dynamicky generuje jako XMLa jeho název bude GuruXMLElement
Řádek 11–13 kódu: Zde definujeme atribut, který bude XML atributem dynamicky generovaného XML.
14. řádek kódu: Zde máme akci těla, kde zapisujeme tělo XML, které bude generováno dynamicky XML.
Když spustíte výše uvedený kód, získáte následující výstup:
Výstup:
Zde získáme výstup z tagu body vygenerovaného XML.
jsp:text
- Používá se k šablonování textu na stránkách JSP.
- Jeho tělo neobsahuje žádné další prvky a obsahuje pouze text a EL výrazy.
Syntaxe:
<jsp:text>template text</jsp:text>
Text šablony zde odkazuje pouze na text šablony (což může být jakýkoli obecný text, který je třeba vytisknout na jsp ) nebo jakýkoli EL výraz.
Příklad:
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>
Vysvětlení kódu:
10. řádek kódu: Zde bereme textový objekt pro tisk textu šablony
Když spustíte výše uvedený kód, získáte následující výstup
Výstup:
Získáváme Guru Template Text, který je umístěn v rámci textových akčních objektů.
jsp:výstup
- Určuje deklaraci XML nebo deklaraci DOCTYPE jsp
- Deklarace XML a DOCTYPE jsou deklarovány výstupem
Syntaxe:
<jsp:output doctype-root-element="" doctype-system="">
Zde doctype-root-element označuje kořenový prvek dokumentu XML v DOCTYPE. Doctype-system označuje doctype, který je generován na výstupu a poskytuje systémový doslov
Příklad:
<%@ 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>
Vysvětlení kódu:
10. řádek kódu: Zde používáme výstupní akční objekt ke generování DOCTYPE a interně bude generován v tomto formátu:
Pro to nebude žádný výstup, protože bude generován interně.