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.

jsp: uwzględnij

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:

jsp:getProperty

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

jsp: do przodu

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:

jsp:atrybut

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

jsp:tekst

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.