Etichete de acțiune JSP

⚡ Rezumat inteligent

Etichetele de acțiune JSP utilizează sintaxa XML pentru a controla comportamentul motorului servlet, permițând dezvoltatorilor să includă fișiere, să redirecționeze cereri, să lucreze cu JavaBeans și încorporarea de conținut dinamic în timpul procesării cererilor.

  • 🏷️ Set standard: Unsprezece etichete de acțiune standard gestionează include-uri, redirecționări, bean-uri, plugin-uri și ieșiri XML.
  • 📜 Sintaxă XML: Etichetele de acțiune respectă strict formularul XML și sunt reevaluate la fiecare solicitare.
  • 🔗 Integrarea fasolei: jsp:useBean, jsp:setProperty și jsp:getProperty gestionează JavaCiclul de viață și proprietățile fasolei.
  • Fluxul paginii: jsp:include îmbină resursele; jsp:forward transferă gestionarea cererilor către o altă pagină.
  • 🧪 XML dinamic: jsp:body, jsp:attribute, jsp:text și jsp:output generează dinamic structuri XML.
  • 🤖 Modernizarea IA: Asistenții inteligenți artificiali ajută la refactorizarea codului de acțiune JSP vechi în framework-uri moderne.

Etichete de acțiune JSP

Ce este o etichetă de acțiune JSP?

Etichetele de acțiune JSP utilizează construcții de sintaxă XML pentru a controla comportamentul motorului servlet. Dezvoltatorii pot insera dinamic un fișier, îl pot reutiliza JavaComponentele Bean redirecționează utilizatorul către o altă pagină și efectuează operațiuni similare în timpul rulării prin intermediul etichetelor de acțiune JSP, cum ar fi include și forward. Spre deosebire de directive, etichetele de acțiune sunt reevaluate de fiecare dată când pagina este accesată, ceea ce le face ideale pentru comportamentul dinamic în timpul procesării cererilor.

Sintaxă:

<jsp:action_name attribute="value" />

În acest tutorial despre etichetele de acțiune standard JSP, veți învăța cum funcționează fiecare etichetă de acțiune, ce face și cum să o aplicați într-un fișier JSP real.

Lista etichetelor de acțiune utilizate frecvent în JSP

Există 11 tipuri de etichete de acțiune standard în JSP și aici este lista completă a acestora.

Nume etichetă de acțiune Sintaxă Descriere
jsp:useBean Folosit pentru a invoca și a folosi beans în pagina JSP.
jsp:include <jsp:include page=”page URL„flush=”adevărat/fals” /> Include un alt fișier JSP în fișierul curent în timpul procesării cererii.
jsp:setProperty Setează proprietatea unui fasole.
jsp:getProperty Preia proprietatea unui bean și o convertește într-un șir pentru ieșire.
jsp:forward Redirecționează cererea către alt JSP sau pagină statică.
jsp:plugin Prezintă Java componente precum applet-uri sau beans în JSP și generează automat etichete.
jsp:corp Definește elemente XML care sunt generate dinamic în timpul procesării cererii.
jsp:text text șablon Folosit pentru a insera text șablon în pagini JSP, care conține doar text și expresii EL.
jsp:param Transmite parametri în cadrul acțiunii jsp:plugin pentru a adăuga date suplimentare.
jsp:atribut Definește atributele XML care sunt generate dinamic.
jsp:ieșire Specifică declarația XML sau DOCTYPE care va fi utilizată în ieșire.

Acum că aveți lista completă, vom explora fiecare dintre aceste etichete de acțiune JSP pe rând, cu sintaxă și un exemplu funcțional.

jsp:useBean Etichetă de acțiune

  • Acest nume de acțiune este folosit atunci când doriți să utilizați JavaFasole în pagina JSP.
  • Cu această etichetă, puteți invoca cu ușurință un bean și reutiliza componentele de pe server.

Sintaxa lui jsp:useBean:

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

Aici, id specifică identificatorul pentru acest bean, iar class este calea completă a clasei bean.

Exemplu:

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

Explicația codului:

Code Linia 10: În codul de mai sus, utilizați „bean id” și „class path” ale bean-ului.

jsp:include Etichetă de acțiune

  • jsp:include este utilizat pentru a insera un fișier JSP într-un alt fișier în timpul procesării cererii, similar cu includerea Directivele.
  • Se adaugă în timpul fazei de procesare a cererii, ceea ce înseamnă că conținutul inclus este evaluat de fiecare dată când pagina este solicitată.

Sintaxa lui jsp:include:

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

Exemplu:

În acțiune_jsp2 (Code Linia 10), includem un fișier 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>

Explicația codului:

Action_jsp2.jsp

Code Linia 10: În primul fișier, includem fișierul date.jsp în action_jsp2.jsp.

Date.jsp:

Code Linia 11: Imprimăm data de astăzi în linia de cod 11 din date.jsp.

Când executați codul, rezultatul este următorul.

jsp:include

ieșire:

  • Afișează data de astăzi cu ora, deoarece fișierul de dată este inclus în pagina JSP principală.

Etichetă de acțiune jsp:setProperty

  • Această acțiune standard în JSP este utilizată pentru a seta proprietatea bean-ului.
  • Trebuie să definiți un bean înainte de a seta proprietatea.

Sintaxă:

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

Aici, numele definește bean-ul a cărui proprietate este setată, iar proprietatea este proprietatea pe care doriți să o setați. De asemenea, puteți seta atributele valoare și parametru. Aici valoarea nu este obligatorie și definește valoarea care este atribuită proprietății. Aici parametrul este numele parametrului de solicitare folosind care poate fi extrasă valoarea. Exemplul de setProperty va fi demonstrat mai jos cu getProperty.

Etichetă de acțiune jsp:getProperty

  • Această acțiune este utilizată pentru a obține proprietatea fasolei.
  • Convertește proprietatea într-un șir de caractere și în final o inserează în ieșire.

Sintaxă:

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

Aici, numele este bean-ul din care trebuie extrasă proprietatea, iar bean-ul ar trebui definit. Atributul property este numele proprietății bean-ului care trebuie extrasă.

Exemplu de 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;
	}
}

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>

Explicația codului:

TestBean.java:

Code Line 5TestBean implementează clasa Serializable. Este o clasă bean cu getter-uri și setter-uri în cod.

Code Line 7Aici luăm variabila privată de tip șir de caractere msg ca „null”.

Code Linia 9-14Aici folosim getter-uri și setter-uri ale variabilei „msg”.

Action_jsp3.jsp

Code Linia 10: Aici folosim eticheta „useBean”, care specifică bean-ul (TestBean) care trebuie utilizat în această clasă JSP.

Code Linia 11: Aici setăm valoarea pentru proprietatea msg pentru bean-ul TestBean ca „Guru„Tutorial”.

Code Linia 12: Aici, folosind getProperty, obținem valoarea proprietății msg pentru bean-ul TestBean (GuruTutorial), care este afișat în rezultat.

Când executați codul de mai sus, obțineți următoarea ieșire:

jsp:getProperty

ieșire:

În acest exemplu, folosind TestBean, setăm proprietatea „msg” folosind setProperty și obținem valoarea proprietății folosind getProperty ca „Guru„Tutorial”.

jsp:forward Etichetă de acțiune

Eticheta de acțiune jsp:forward este utilizată pentru a redirecționa cererea către un alt JSP sau către orice pagină statică.

Aici cererea poate fi transmisă fără parametri sau cu parametri.

Sintaxă:

<jsp:forward page="value">

Aici valoarea reprezintă locul unde trebuie transmisă cererea.

Exemplu:

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>

Explicația codului:

Action_jsp41.jsp

Code Linia 10: Aici folosim acțiunea JSP forward pentru a redirecționa cererea către pagina menționată în atribut, adică jsp_action_42.jsp.

Jsp_action_42.jsp

Code Linia 10: Odată ce apelăm action_jsp41.jsp, cererea este redirecționată către această pagină și primim rezultatul ca „Aceasta este după pagina de redirecționare”.

Când executăm codul de mai sus, obținem următorul rezultat.

jsp:forward

ieșire:

Apelăm action_jsp41.jsp, dar cererea este redirecționată către jsp_action_42.jsp și obținem rezultatul de la acea pagină ca „Aceasta este pagina de după redirecționare”.

jsp:plugin Etichetă de acțiune

  • Este folosit pentru a introduce Java componente în JSP, unde Java Componentele pot fi fie un applet, fie un bean.
  • Detectează browserul și adaugă sau etichete în fișier.

Sintaxă:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Aici, tipul specifică fie un obiect, fie un bean.
  • Code specifică numele clasei applet-ului sau bean-ului.
  • Codebaza conține baza URL care conține fișiere de clase.

jsp:param Etichetă de acțiune

  • Acesta este un obiect copil al obiectului plugin descris mai sus.
  • Trebuie să conțină una sau mai multe acțiuni pentru a furniza parametri suplimentari.

Sintaxă:

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

Exemplu de plugin și parametru:

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;
	
}

Explicația codului:

Action_jsp5.jsp

Code Linia 10: Aici folosim obiectul jsp:plugin, unde luăm trei atribute.

  • Tip – în acest caz este fasole.
  • Code – numele fișierului.
  • Codebază – calea cu numele pachetului.

Code Linia 11-14: Aici luăm obiectul jsp:params, sub care există un obiect param copil cu atributele name și value, și setăm valorile id și name în aceste atribute.

Student.java

Code 7-17: Folosim getter-uri și setter-uri pentru variabilele id și name.

Code 19-20: Inițializăm variabilele id și name.

Aici vom obține o ieșire în cazul în care valorile setate ale lui param vor fi utilizate în bean-ul Student. În acest caz, nu vom avea nicio ieșire, deoarece doar setăm și obținem valorile lui param, dar nu le afișăm nicăieri.

jsp:body Etichetă de acțiune

  • Această etichetă este utilizată pentru a defini dinamic fișierul XML, unde Elemente de poate fi generată în timpul cererii, mai degrabă decât în ​​timpul compilării.
  • Definește XML-ul, care este generat dinamic ca corp de element.

Sintaxă:

<jsp:body></jsp:body>

Aici scriem eticheta XML body în cadrul acestor etichete.

jsp:attribute Etichetă de acțiune

  • Această etichetă este utilizată pentru a defini dinamic fișierul XML, unde elementele pot fi generate în timpul solicitării, mai degrabă decât în ​​timpul compilării.
  • Definește atributul XML care va fi generat dinamic.

Sintaxă:

<jsp:attribute></jsp:attribute>

Aici scriem eticheta de atribut a XML-ului.

Exemplu de corp și atribut:

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>

Explicația codului:

Code Linia 10: Aici definim un element, care este generat dinamic ca XML, iar numele său va fi GuruElement XML.

Code Linia 11-13: Aici definim un atribut, care va fi un atribut XML al fișierului XML generat dinamic.

Code Linia 14: Aici avem acțiunea body, unde scriem corpul XML, care va fi generat dinamic.

Când executați codul de mai sus, obțineți următoarea ieșire:

jsp:atribut

ieșire:

Aici obținem rezultatul etichetei body a fișierului XML generat.

jsp:text Etichetă de acțiune

  • Se folosește pentru a insera text șablon în pagini JSP.
  • Corpul său nu conține alte elemente și conține doar text și expresii EL.

Sintaxă:

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

Aici, textul șablonului se referă doar la textul șablonului (care poate fi orice text generic ce trebuie imprimat pe JSP) sau la orice EL expresie.

Exemplu:

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>

Explicația codului:

Code Linia 10: Aici luăm obiectul text pentru a imprima textul șablonului.

Când executați codul de mai sus, obțineți următoarea ieșire.

jsp:text

ieșire:

Primim Guru Text șablon, care este plasat în obiectul acțiunii text.

jsp:output Etichetă de acțiune

  • Specifică declarația XML sau declarația DOCTYPE a JSP.
  • Declarația XML și DOCTYPE sunt declarate de ieșire.

Sintaxă:

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

Aici, doctype-root-element indică elementul rădăcină al documentului XML din DOCTYPE. Doctype-system indică doctype-ul care este generat în ieșire și oferă un literal de sistem.

Exemplu:

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

Explicația codului:

Code Linia 10: Aici folosim obiectul de acțiune de ieșire pentru a genera un DOCTYPE, iar intern acesta va fi generat în acest format:

Nu va exista nicio ieșire vizibilă pentru aceasta, deoarece va fi generată intern.

Întrebări frecvente

Etichetele de acțiune JSP sunt elemente în stil XML care controlează comportamentul motorului servlet în timpul procesării cererilor. Acestea permit dezvoltatorilor să includă fișiere, să redirecționeze cereri, să utilizeze JavaBean-uri, applet-uri încorporate și generare dinamică de ieșire XML într-o pagină JSP.

Directivele sunt procesate o singură dată în momentul traducerii paginii și afectează structura generală a paginii. Etichetele de acțiune sunt reevaluate la fiecare solicitare, ceea ce le face potrivite pentru comportamente dinamice, cum ar fi includerea de conținut, redirecționarea solicitărilor și lucrul cu JavaFasole în timpul execuției.

Folosește jsp:include atunci când trebuie să îmbini conținut de pe o altă pagină în răspunsul curent, cum ar fi anteturile sau subsolurile. Folosește jsp:forward atunci când controlul ar trebui să fie transferat complet către o altă resursă, iar pagina curentă nu ar trebui să producă nicio altă ieșire.

jsp:useBean instanțiază sau localizează un JavaBean într-un anumit domeniu de aplicare. jsp:setProperty atribuie o valoare unei proprietăți bean, iar jsp:getProperty citește valoarea proprietății și o scrie ca șir de caractere în răspuns, permițând o separare clară între prezentare și logica bean.

jsp:body și jsp:attribute definesc corpuri și atribute dinamice ale elementelor XML. jsp:text scrie text șablon literal și expresii EL, iar jsp:output controlează declarația XML sau DOCTYPE produsă atunci când JSP-ul își redă răspunsul.

IA este integrată în aplicațiile JSP și JEE prin apeluri REST către API-uri de modelare, asistenți de chat încorporați și widget-uri de recomandări redate pe paginile JSP. IA ajută, de asemenea, la generarea de cod JSP standard, la sugerarea utilizării etichetelor de acțiune și la validarea conectării bean-urilor în timpul dezvoltării.

Da. Instrumentele asistate de inteligență artificială analizează codul JSP vechi, identifică modele de etichete de acțiune și propun refactorizări pentru framework-uri moderne precum Spring MVC, Thymeleaf sau REST, plus o aplicație pe o singură pagină. De asemenea, generează teste de migrare, rapoarte de dependență și planuri de refactorizare pas cu pas.

Rezumați această postare cu: