JSP-műveletcímkék

Mi az a JSP-művelet?

A JSP-műveletek az XML-szintaxis konstrukcióját használják a szervlet-motor viselkedésének szabályozására. Dinamikusan beszúrhatunk egy fájlt, újra felhasználhatjuk a beans összetevőket, továbbíthatjuk a felhasználót egy másik oldalra stb. JSP-műveletekkel, mint például az include és a forward. Az utasításoktól eltérően a műveletek az oldal minden egyes megnyitásakor újraértékelésre kerülnek.

Syntax:

<jsp:action_name attribute="value" />

Ebben az oktatóanyagban megismerheti a JSP szabványos műveleteit. A JSP Standard Action címkéket a szervlet motor viselkedésének vezérlésére használják.

A JSP-ben gyakran használt műveleti címkék listája

A JSP-ben 11 típusú szabványos műveleti címkét találhatunk, ezek teljes listája itt található.

Műveletcímke neve Szintaxis Description
jsp:useBean Beanek meghívására és használatára szolgál a JSP oldalon.
jsp:include A kérésfeldolgozás során egy másik JSP-fájlt is tartalmaz az aktuális fájlba.
jsp:setProperty Beállítja a bab tulajdonságait.
jsp:getProperty Lekéri egy bab tulajdonságát, és karakterláncsá alakítja a kimenethez.
jsp: előre Továbbítja a kérést egy másik JSP-re vagy statikus oldalra.
jsp: plugin Bemutatja Java olyan összetevőket, mint a kisalkalmazások vagy a babok JSP-be, és automatikusan generál címkéket.
jsp:body Meghatározza a kérésfeldolgozás során dinamikusan generált XML-elemeket.
jsp:text sablon szöveg Sablonszöveg beszúrására használható JSP-oldalakba, amelyek csak szöveget és EL-kifejezéseket tartalmaznak.
jsp:param Paramétereket ad át a jsp:plugin műveleten belül további adatok hozzáadásához.
jsp:attribútum Dinamikusan előállított XML-attribútumokat határoz meg.
jsp:output Megadja a kimenetben használandó XML vagy DOCTYPE deklarációt.

jsp:useBean

  • Ezt a műveletnevet akkor használjuk, ha babot szeretnénk használni a JSP oldalon.
  • Ezzel a címkével könnyen megidézhetünk egy babot.

A jsp szintaxisa: UseBean:

<jsp:useBean id="" class="" />

Itt megadja ennek a komponensnek az azonosítóját, és az osztály a komponensosztály teljes elérési útja

Példa:

<%@ 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>

A kód magyarázata:

10. kódsor: A fenti kódban a komponens „bean id”-jét és „class path”-ját használjuk.

jsp:include

  • Arra is használt, hogy egy jsp fájlt beszúrjon egy másik fájlba, akárcsak az include Irányelvek.
  • A kérésfeldolgozási fázisban kerül hozzáadásra

A jsp:include szintaxisa

<jsp:include page="page URL" flush="true/false">

Példa:

Action_jsp2 (10. kódsor) tartalmaz egy date.jsp fájlt

<%@ 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>

A kód magyarázata:

Action_jsp2.jsp

10. kódsor: Az első fájlba belefoglaljuk a date.jsp fájlt az action_jsp2.jsp fájlba

Date.jsp:

11. kódsor: A mai dátumot a date.jsp 11. kódsorába nyomtatjuk

Amikor végrehajtja a kódot, a következő a kimenet.

jsp:include

output:

  • Megjeleníti a mai dátumot az idővel, mivel a dátumfájl szerepel a fő jsp-ben

jsp:setProperty

  • A JSP szabványos műveleteinek ez a tulajdonsága a bab tulajdonságának beállítására szolgál.
  • A tulajdonság beállítása előtt meg kell határoznunk egy babot

Syntax:

<jsp:setproperty name="" property="" >

Itt a név határozza meg azt a babot, amelynek a tulajdonsága be van állítva, és a tulajdonságot, amelyet be akarunk állítani. Emellett beállíthatunk értéket és param attribútumot is. Itt az érték nem kötelező, és ez határozza meg a tulajdonsághoz rendelt értéket. Itt a param a kérési paraméter neve, amellyel az érték lekérhető. A setproperty példáját alább a getproperty segítségével mutatjuk be

jsp:getProperty

  • Ez a tulajdonság a bab tulajdonának megszerzésére szolgál.
  • Stringgé alakul, végül beszúrja a kimenetbe.

Syntax:

<jsp:getAttribute name="" property="" >

Itt meg kell adni annak a babnak a nevét, amelyből a tulajdonságot le kell keresni, és meg kell határozni a babot. A property attribútum a lekérendő bab tulajdonság neve.

Példa a setProperty és a getProperty használatára:

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>

A kód magyarázata:

TestBean.java:

5. kódsor: A TheTestBean a szerializálható osztályt valósítja meg. Ez egy babosztály getter-beállítókkal a kódban.

7. kódsor: Itt az msg privát karakterlánc-változót „null”-nak vesszük

Kódsor 9-14: Itt az „msg” változó gettereit és beállítóit használjuk.

Action_jsp3.jsp

10. kódsor: Itt a "useBean" címkét használjuk, ahol megadja azt a babot, azaz a TestBean-t, amelyet ebben a jsp osztályban kell használni

11. kódsor: Itt a Bean TestBean tulajdonság msg értékét „GuruTutorial”-ként állítjuk be.

CodeLine12: Itt a getProperty használatával megkapjuk a bean TestBean azaz GuruTutorial tulajdonság msg értékét, amely ott van a kimenetben

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:

jsp:getProperty

output:

Ebben a példában a TestBean használatával megpróbáljuk beállítani a „gurutest” tulajdonságot a setProperty segítségével, és a tulajdonság értékét a getProperty segítségével „GuruTutorial”-ként beállítani.

jsp: előre

A kérés továbbítására szolgál egy másik jsp-re vagy bármely statikus oldalra.

Itt a kérés paraméter nélkül vagy paraméterekkel továbbítható.

Syntax:

<jsp:forward page="value">

Itt az érték azt jelenti, hogy a kérelmet hova kell továbbítani.

Példa:

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>

A kód magyarázata

Action_jsp41.jsp

10. kódsor: Itt a továbbító JSP-műveletet használjuk a kérés továbbítására az attribútumban említett oldalra, azaz a jsp_action_42.jsp

Jsp_action_42.jsp

10. kódsor: Miután meghívtuk az action_jsp41.jsp-t, a kérés továbbítódik erre az oldalra, és a kimenetet a következőképpen kapjuk meg: „Ez a továbbítási oldal után van”.

Amikor végrehajtjuk a fenti kódot, a következő kimenetet kapjuk

jsp: előre

output:

Meghívjuk az action_jsp41.jsp fájlt, de a kérelmet a rendszer továbbítja a jsp_action_42.jsp címre, és az oldal kimenetét a következőképpen kapjuk meg: „Ez a továbbítási oldal után van”.

jsp: plugin

  • Bevezetésre szolgál Java komponenseket jsp-be, azaz a java összetevők lehetnek kisalkalmazások vagy babok.
  • Érzékeli a böngészőt és hozzáadja vagy JSP címkéket a fájlba

Syntax:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Itt a típus egy objektumot vagy egy babot határoz meg
  • A kód az applet vagy a bab osztálynevét adja meg
  • A kódbázis tartalmazza az osztályok fájljait tartalmazó alap URL-t

jsp:param

  • Ez a fent leírt plugin objektum gyermekobjektuma
  • Tartalmaznia kell egy vagy több műveletet további paraméterek megadásához.

Syntax:

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

Példa a beépülő modulra és a paraméterre

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>

Diák.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;
	
}

A kód magyarázata:

Action_jsp5.jsp

10. kódsor: Itt jsp: plugin objektumot veszünk, ahol három attribútumot veszünk

  • Típus – ebben az esetben babról van szó
  • A fájl kódneve
  • Kódbázis – elérési út a csomag nevével

11-14. kódsor: Itt jsp: params objektumot veszünk, amely alatt van egy gyermek param objektum név és érték attribútumokkal, és ebben az attribútumban állítjuk be az id és name értékeit.

Diák.java

7-17 kód: Gettereket és settereket használunk az id és name változókhoz

19-20 kód: inicializáljuk az id és name változókat.

Itt abban az esetben kapunk kimenetet, ha a Student Beanben a param beállított értékeit használjuk. Ebben az esetben nem lesz kimenetünk, mivel csak beállítjuk és megkapjuk a param értékeit, de nem nyomtatjuk ki sehova.

jsp:body

  • Ez a címke az XML dinamikus meghatározására szolgál, azaz a Elemek generálhat a kérés ideje alatt, mint a fordítási idő alatt.
  • Valójában ez határozza meg az XML-t, amely dinamikusan generált elemtörzs.

Syntax:

<jsp:body></jsp:body>

Itt XML body tag-et írunk a címkék közé

jsp:attribútum

  • Ezt a címkét az XML dinamikus meghatározására használják, azaz az elemek a kérés ideje alatt generálhatók, mint a fordítási idő alatt
  • Valójában meghatározza az XML attribútumait, amely dinamikusan generálódik.

Syntax:

<jsp:attribute></jsp:attribute>

Ide írjuk az XML attribútum címkéjét.

Példa a törzsre és az attribútumra:

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>

A kód magyarázata:

10. kódsor: Itt egy olyan elemet határozunk meg, amely dinamikusan generálódik XML, és a neve GuruXMLElement lesz

11-13. kódsor: Itt definiálunk egy attribútumot, amely a dinamikusan generált XML XML attribútumaként kezeli.

14. kódsor: Itt van egy testművelet, ahol az XML törzset írjuk, amely dinamikusan XML-ben lesz generálva.

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:

jsp:attribútum

output:

Itt megkapjuk a generált XML törzscímkéjének kimenetét.

jsp:text

  • JSP-oldalak szövegének sablonolására szolgál.
  • A törzse nem tartalmaz más elemeket, csak szöveget és EL kifejezéseket tartalmaz.

Syntax:

<jsp:text>template text</jsp:text>

Itt a sablonszöveg csak a sablonszövegre vonatkozik (ez lehet bármilyen általános szöveg, amelyet jsp-re kell nyomtatni) vagy bármely EL kifejezés.

Példa:

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>

A kód magyarázata:

10. kódsor: Itt szövegobjektumot veszünk a sablon szövegének kinyomtatásához

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja

jsp:text

output:

Guru sablonszöveget kapunk, amely szöveges műveletobjektumokba kerül.

jsp:output

  • Meghatározza a jsp XML vagy DOCTYPE deklarációját
  • Az XML deklarációt és a DOCTYPE-ot a kimenet deklarálja

Syntax:

<jsp:output doctype-root-element="" doctype-system="">

Itt a doctype-root-element az XML dokumentum gyökérelemét jelzi a DOCTYPE-ban. A Doctype-rendszer a kimenetben generált doctype-ot jelöli, és megadja a rendszer literált

Példa:

<%@ 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>

A kód magyarázata:

10. kódsor: Itt a kimeneti műveletobjektumot használjuk egy DOCTYPE generálására, és belsőleg ebben a formátumban jön létre:

Ennek nem lesz kimenete, mivel ezt belsőleg generálják.