Tagi akcji JSP

⚡ Inteligentne podsumowanie

Tagi akcji JSP wykorzystują składnię XML do kontrolowania zachowania silnika serwletów, umożliwiając programistom dołączanie plików, przekazywanie żądań i pracę z JavaBeans i osadzanie dynamicznej zawartości podczas przetwarzania żądania.

  • 🏷️ Zestaw standardowy: Jedenaście standardowych tagów akcji obsługuje m.in. przekazy, ziarna, wtyczki i dane wyjściowe XML.
  • 📜 Składnia XML: Tagi akcji są zgodne ze ścisłymi zasadami XML i są ponownie oceniane przy każdym żądaniu.
  • 🔗 Integracja Beanów: jsp:useBean, jsp:setProperty i jsp:getProperty zarządzają JavaCykl życia i właściwości ziarna.
  • ✅ Przepływ stron: jsp:include scala zasoby; jsp:forward przenosi obsługę żądań na inną stronę.
  • 🧪 Dynamiczny XML: jsp:body, jsp:attribute, jsp:text i jsp:output dynamicznie generują struktury XML.
  • 🤖 Modernizacja AI: Asystenci AI pomagają przekształcać starszy kod akcji JSP w nowoczesne struktury.

Tagi akcji JSP

Czym jest znacznik akcji JSP?

Tagi akcji JSP wykorzystują konstrukcje składni XML do kontrolowania działania silnika serwletów. Programiści mogą dynamicznie wstawiać pliki i ponownie je wykorzystywać. JavaKomponenty Bean przekierowują użytkownika do innej strony i wykonują podobne operacje w czasie wykonywania za pośrednictwem znaczników akcji JSP, takich jak include i forward. W przeciwieństwie do dyrektyw, znaczniki akcji są ponownie oceniane przy każdym dostępie do strony, co czyni je idealnymi do dynamicznego zachowania podczas przetwarzania żądań.

Składnia:

<jsp:action_name attribute="value" />

W tym samouczku dotyczącym standardowych znaczników akcji JSP dowiesz się, jak działa każdy znacznik akcji, co robi i jak go zastosować w rzeczywistym pliku JSP.

Lista często 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 <jsp:include page=”page URL” flush=”prawda/fałsz” /> 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.

Teraz, gdy masz już pełną listę, omówimy po kolei każdy z tych znaczników akcji JSP, podając składnię i przykład działania.

jsp:useBean Znacznik akcji

  • Ta nazwa akcji jest używana, gdy chcesz użyć JavaFasole na stronie JSP.
  • Za pomocą tego znacznika można łatwo wywołać bean i ponownie wykorzystać komponenty po stronie serwera.

Składnia jsp:useBean:

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

Tutaj id określa identyfikator tego ziarna, a class to pełna ścieżka klasy ziarna.

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:

Code Linia 10: W powyższym kodzie używasz „identyfikatora ziarna” i „ścieżki klasy” ziarna.

jsp:include Znacznik akcji

  • jsp:include służy do wstawiania pliku JSP do innego pliku podczas przetwarzania żądania, podobnie jak include Dyrektywy.
  • Jest on dodawany na etapie przetwarzania żądania, co oznacza, że ​​uwzględniona treść jest oceniana za każdym razem, gdy strona jest żądana.

Składnia jsp:include:

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

Przykład:

W Action_jsp2 (Code W wierszu 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

Code Linia 10: W pierwszym pliku dołączamy plik date.jsp do action_jsp2.jsp.

Data.jsp:

Code Linia 11: W wierszu kodu 11 pliku date.jsp drukujemy dzisiejszą datę.

Po wykonaniu kodu otrzymasz następujący wynik.

jsp: uwzględnij

Wyjście:

  • Wyświetla dzisiejszą datę wraz z godziną, ponieważ plik daty jest zawarty na głównej stronie JSP.

jsp:setProperty Akcja Tag

  • Ta standardowa akcja w JSP jest używana do ustawienia właściwości ziarna.
  • Musisz zdefiniować ziarno przed ustawieniem właściwości.

Składnia:

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

W tym przypadku nazwa definiuje bean, którego właściwość jest ustawiona, a właściwość to właściwość, którą chcesz ustawić. Możesz również ustawić atrybuty value i param. W tym przypadku wartość nie jest obowiązkowa i definiuje wartość przypisaną do właściwości. Param to nazwa parametru żądania, za pomocą którego można pobrać wartość. Przykład setProperty zostanie zademonstrowany poniżej za pomocą getProperty.

jsp:getProperty Znacznik akcji

  • Ta akcja służy do pobrania właściwości ziarna.
  • Konwertuje właściwość na ciąg znaków i na koniec wstawia go do wyjścia.

Składnia:

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

W tym przypadku nazwa to bean, z którego właściwość ma zostać pobrana, a bean powinien zostać zdefiniowany. Atrybut właściwości 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:

Code linia 5TestBean implementuje klasę Serializable. Jest to klasa bean z metodami get i set w kodzie.

Code linia 7: Tutaj bierzemy prywatną zmienną ciągu msg jako „null”.

Code Linia 9-14: Tutaj używamy getterów i setterów zmiennej „msg”.

Akcja_jsp3.jsp

Code Linia 10: Tutaj użyliśmy znacznika „useBean”, który określa ziarno (TestBean), które ma zostać użyte w tej klasie JSP.

Code Linia 11: Tutaj ustawiamy wartość właściwości msg dla bean TestBean jako „GuruSeminarium".

Code Linia 12: Tutaj, używając metody getProperty, pobieramy wartość właściwości msg dla beana TestBean (GuruSamouczek), który jest widoczny 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, ustawiamy właściwość „msg” za pomocą setProperty i pobieramy wartość właściwości za pomocą getProperty jako „GuruSeminarium".

jsp:forward Znacznik akcji

Znacznik akcji jsp:forward służy do przekazywania żądania do innego 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

Code Linia 10: Tutaj używamy akcji JSP forward, aby przekazać żądanie do strony wymienionej w atrybucie, tj. jsp_action_42.jsp.

Jsp_action_42.jsp

Code Linia 10: Po wywołaniu action_jsp41.jsp żądanie zostaje przekierowane do tej strony, a my otrzymujemy wynik w postaci „To jest strona po przekierowaniu”.

Po wykonaniu powyższego kodu otrzymamy następujący wynik.

jsp: do przodu

Wyjście:

Wywołujemy action_jsp41.jsp, ale żądanie zostaje przekierowane do jsp_action_42.jsp, a my otrzymujemy dane wyjściowe z tej strony w postaci „To jest strona po przekierowaniu”.

jsp:plugin Akcja Tag

  • Służy do przedstawienia Java komponentów do JSP, gdzie Java komponenty mogą być apletami lub ziarnami.
  • Wykrywa przeglądarkę i dodaje Lub tagi do pliku.

Składnia:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • W tym przypadku typ określa albo obiekt albo ziarno.
  • Code określa nazwę klasy apletu lub ziarna.
  • Codebaza zawiera bazę URL zawierający pliki klas.

jsp:param Znacznik akcji

  • Jest to obiekt podrzędny 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

Code Linia 10: Tutaj używamy obiektu jsp:plugin, w którym bierzemy trzy atrybuty.

  • Typ – w tym przypadku jest to fasola.
  • Code – nazwa pliku.
  • Codebaza – ścieżka zawierająca nazwę pakietu.

Code Linia 11-14: Tutaj bierzemy obiekt jsp:params, pod którym znajduje się obiekt podrzędny param z atrybutami name i value, i ustawiamy wartości id i name w tych atrybutach.

Student.java

Code -7 17: Używamy getterów i setterów dla zmiennych id i name.

Code -19 20: Inicjujemy zmienne id i name.

Tutaj otrzymamy wynik w przypadku, gdy wartości ustawione dla parametru „param” zostaną użyte w beanie Student. W tym przypadku nie otrzymamy żadnego wyniku, ponieważ po prostu ustawiamy i pobieramy wartości parametru „param”, ale nigdzie ich nie wyświetlamy.

jsp:body Znacznik akcji

  • Ten znacznik służy do dynamicznego definiowania kodu XML, gdzie Elementy mogą być generowane w czasie żądania, a nie kompilacji.
  • Definiuje kod XML, który jest generowany dynamicznie jako treść elementu.

Składnia:

<jsp:body></jsp:body>

Tutaj wpisujemy znacznik treści XML w obrębie tych znaczników.

jsp:attribute Tag akcji

  • Ten znacznik służy do dynamicznego definiowania kodu XML, co oznacza, że ​​elementy mogą być generowane w czasie żądania, a nie kompilacji.
  • Definiuje atrybut XML, który będzie generowany dynamicznie.

Składnia:

<jsp:attribute></jsp:attribute>

Tutaj zapisujemy 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:

Code Linia 10: Tutaj definiujemy element, który jest generowany dynamicznie jako XMLi jego nazwa będzie GuruElement XML.

Code Linia 11-13: Tutaj definiujemy atrybut, który będzie atrybutem XML dynamicznie generowanego pliku XML.

Code Linia 14: Tutaj mamy akcję ciała, w której zapisujemy ciało XML, które zostanie wygenerowane dynamicznie.

Po wykonaniu powyższego kodu otrzymasz następujący wynik:

jsp:atrybut

Wyjście:

Tutaj otrzymujemy dane wyjściowe ze znacznika body wygenerowanego pliku XML.

jsp:text Znacznik akcji

  • Służy do wstawiania tekstu szablonu na strony 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ę wyłącznie do tekstu szablonu (który może być dowolnym tekstem ogólnym, który należy wydrukować na JSP) lub do dowolnego 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:

Code Linia 10: Tutaj bierzemy obiekt tekstowy, aby wydrukować tekst szablonu.

Po wykonaniu powyższego kodu otrzymasz następujący wynik.

jsp:tekst

Wyjście:

Dostajemy Guru Tekst szablonu, który jest umieszczany w obiekcie akcji tekstowej.

jsp:output Tag akcji

  • Określa deklarację XML lub deklarację DOCTYPE JSP.
  • Deklaracja XML i DOCTYPE są deklarowane w wyjściu.

Składnia:

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

W tym przypadku doctype-root-element wskazuje element główny dokumentu XML w DOCTYPE. Doctype-system wskazuje doctype generowany na wyjściu i zwraca 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:

Code Linia 10: Tutaj używamy obiektu akcji wyjściowej do wygenerowania DOCTYPE, który wewnętrznie będzie generowany w następującym formacie:

Nie będzie widocznych wyników, ponieważ zostaną one wygenerowane wewnętrznie.

FAQ

Tagi akcji JSP to elementy w stylu XML, które kontrolują zachowanie silnika serwletów podczas przetwarzania żądań. Umożliwiają one programistom dołączanie plików, przekazywanie żądań i używanie JavaBeany, osadzaj aplety i dynamicznie generuj dane wyjściowe XML na stronie JSP.

Dyrektywy są przetwarzane jednorazowo w momencie tłumaczenia strony i wpływają na jej ogólną strukturę. Tagi akcji są ponownie oceniane przy każdym żądaniu, co czyni je odpowiednimi do dynamicznych zachowań, takich jak dołączanie treści, przekazywanie żądań i praca z… JavaFasole w czasie wykonywania.

Użyj jsp:include, gdy chcesz scalić zawartość z innej strony z bieżącą odpowiedzią, taką jak nagłówki lub stopki. Użyj jsp:forward, gdy kontrola powinna zostać całkowicie przekazana innemu zasobowi, a bieżąca strona nie powinna generować żadnych dalszych danych.

jsp:useBean tworzy instancję lub lokalizuje JavaObiekt bean w danym zakresie. jsp:setProperty przypisuje wartość właściwości obiektu bean, a jsp:getProperty odczytuje wartość właściwości i zapisuje ją jako ciąg znaków w odpowiedzi, umożliwiając wyraźne oddzielenie prezentacji od logiki obiektu bean.

jsp:body i jsp:attribute definiują dynamiczne treści i atrybuty elementów XML. jsp:text zapisuje tekst szablonu literałowego i wyrażenia EL, a jsp:output kontroluje deklarację XML lub DOCTYPE generowany, gdy JSP renderuje swoją odpowiedź.

Sztuczna inteligencja jest integrowana z aplikacjami JSP i JEE poprzez wywołania REST do modelowania interfejsów API, wbudowanych asystentów czatu oraz widżetów rekomendacji renderowanych na stronach JSP. Sztuczna inteligencja pomaga również generować szablonowy kod JSP, sugerować użycie tagów akcji i weryfikować okablowanie beanów podczas programowania.

Tak. Narzędzia wspomagane sztuczną inteligencją analizują starszy kod JSP, identyfikują wzorce tagów akcji i proponują refaktoryzacje do nowoczesnych frameworków, takich jak Spring MVC, Thymeleaf czy REST, a także do aplikacji jednostronicowych. Generują również testy migracji, raporty zależności i plany refaktoryzacji krok po kroku.

Podsumuj ten post następująco: