JSP Action Tags

⚡ Smart sammanfattning

JSP Action Tags använder XML-syntax för att styra servletmotorns beteende, vilket gör det möjligt för utvecklare att inkludera filer, vidarebefordra förfrågningar, arbeta med JavaBönor och bädda in dynamiskt innehåll under bearbetning av förfrågningar.

  • 🏷️ Standarduppsättning: Elva standardåtgärdstaggar hanterar includes, forwards, beans, plugins och XML-utdata.
  • 📜 XML-syntax: Åtgärdstaggar följer strikt XML-format och utvärderas på nytt vid varje begäran.
  • 🔗 Bönintegration: jsp:useBean, jsp:setProperty och jsp:getProperty hantera JavaBönors livscykel och egenskaper.
  • ✅ Sidflöde: jsp:include sammanfogar resurser; jsp:forward överför förfrågningshanteringen till en annan sida.
  • 🧪 Dynamisk XML: jsp:body, jsp:attribute, jsp:text och jsp:output genererar XML-strukturer dynamiskt.
  • 🤖 AI-modernisering: AI-assistenter hjälper till att omstrukturera äldre JSP-åtgärdskod till moderna ramverk.

JSP Action Tags

Vad är en JSP-åtgärdstagg?

JSP Action Tags använder XML-syntaxkonstruktioner för att styra servletmotorns beteende. Utvecklare kan dynamiskt infoga en fil, återanvända JavaBean-komponenter vidarebefordrar användaren till en annan sida och utför liknande runtime-åtgärder via JSP Action Tags som include och forward. Till skillnad från direktiv utvärderas action tags varje gång sidan öppnas, vilket gör dem idealiska för dynamiskt beteende under förfrågningsbehandling.

Syntax:

<jsp:action_name attribute="value" />

I den här handledningen om JSP Standard Action Tags får du lära dig hur varje action-tagg fungerar, vad den gör och hur du använder den i en riktig JSP-fil.

Lista över vanligt förekommande åtgärdstaggar i JSP

Det finns 11 typer av standardåtgärdstaggar i JSP, och här är den fullständiga listan över dem.

Action Tag Namn syntax BESKRIVNING
jsp:useBean Används för att anropa och använda bönor på JSP-sidan.
jsp:inkludera <jsp:include page=”page URL"spola="sant/falskt" /> Inkluderar ytterligare en JSP-fil i den aktuella filen under bearbetning av begäran.
jsp:setProperty Ställer in egenskapen för en böna.
jsp:getProperty Hämtar egenskapen för en böna och omvandlar den till en sträng för utmatning.
jsp:framåt Vidarebefordrar begäran till en annan JSP eller statisk sida.
jsp:plugin Introducerar Java komponenter som applets eller bönor till JSP och genererar automatiskt taggar.
jsp:kropp Definierar XML-element som genereras dynamiskt under bearbetning av begäran.
jsp:text mall text Används för att infoga malltext i JSP-sidor, som endast innehåller text och EL-uttryck.
jsp:param Skickar parametrar inom jsp:plugin-åtgärden för att lägga till extra data.
jsp:attribut Definierar XML-attribut som genereras dynamiskt.
jsp:utgång Anger XML- eller DOCTYPE-deklarationen som ska användas i utdata.

Nu när du har hela listan ska vi utforska var och en av dessa JSP Action Tags en efter en med syntax och ett fungerande exempel.

jsp:useBean Åtgärdstagg

  • Detta åtgärdsnamn används när du vill använda JavaBönor på JSP-sidan.
  • Med den här taggen kan du enkelt anropa en böna och återanvända komponenter på serversidan.

Syntax för jsp:useBean:

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

Här anger id identifieraren för denna böna och klassen är den fullständiga sökvägen till bönklassen.

Exempel:

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

Förklaring av koden:

Code Linje 10: I koden ovan använder du bönans "bön-id" och "klasssökväg".

jsp:include åtgärdstagg

  • jsp:include används för att infoga en JSP-fil i en annan fil under förfrågningsbearbetning, ungefär som att inkludera instruktioner.
  • Den läggs till under bearbetningsfasen för begäran, vilket innebär att det inkluderade innehållet utvärderas varje gång sidan begärs.

Syntax för jsp:include:

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

Exempel:

I Aktion_jsp2 (Code Rad 10), inkluderar vi en date.jsp-fil.

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

Förklaring av koden:

Action_jsp2.jsp

Code Linje 10: I den första filen inkluderar vi date.jsp-filen i action_jsp2.jsp.

Date.jsp:

Code Linje 11: Vi skriver ut dagens datum på kodrad 11 i date.jsp.

När du kör koden får du följande utdata.

jsp:inkludera

Produktion:

  • Den visar dagens datum med tid eftersom datumfilen ingår på JSP:s huvudsida.

jsp:setProperty Åtgärdstagg

  • Denna standardåtgärd i JSP används för att ställa in egenskapen för bönan.
  • Du måste definiera en böna innan du anger egenskapen.

Syntax:

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

Här definierar namnet den böna vars egenskap är satt, och property är den egenskap du vill ställa in. Du kan också ange attributen value och param. Här är value inte obligatoriskt, och det definierar det värde som tilldelas egenskapen. Här är param namnet på den request-parameter med vilken värdet kan hämtas. Exemplet på setProperty kommer att demonstreras nedan med getProperty.

jsp:getProperty Åtgärdstagg

  • Denna åtgärd används för att hämta bönans egenskap.
  • Den konverterar egenskapen till en sträng och infogar den slutligen i utdata.

Syntax:

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

Här är namnet den böna från vilken egenskapen ska hämtas, och bönan ska definieras. Attributet property är namnet på den bönaegenskap som ska hämtas.

Exempel på setProperty och 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>

Förklaring av koden:

TestBean.java:

Code Linje 5TestBean implementerar Serializable-klassen. Det är en bönklass med getters och setters i koden.

Code Linje 7Här tar vi den privata strängvariabeln msg som "null".

Code Linje 9-14Här använder vi getters och setters för variabeln "msg".

Action_jsp3.jsp

Code Linje 10: Här använder vi taggen ”useBean”, där den anger den böna (TestBean) som måste användas i denna JSP-klass.

Code Linje 11: Här ställer vi in ​​värdet för egenskapen msg för bönan TestBean som "GuruHandledning".

Code Linje 12: Här, med hjälp av getProperty, får vi värdet för egenskapen msg för bönan TestBean (GuruHandledning), vilket visas i utdata.

När du kör ovanstående kod får du följande utdata:

jsp:getProperty

Produktion:

I det här exemplet, med TestBean, ställer vi in ​​egenskapen "msg" med hjälp av setProperty och hämtar värdet för egenskapen med hjälp av getProperty som "GuruHandledning".

jsp:forward Åtgärdstagg

Action-taggen jsp:forward används för att vidarebefordra begäran till en annan JSP eller någon statisk sida.

Här kan begäran vidarebefordras utan parametrar eller med parametrar.

Syntax:

<jsp:forward page="value">

Här representerar värdet vart begäran måste vidarebefordras.

Exempel:

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>

Förklaring av koden:

Action_jsp41.jsp

Code Linje 10: Här använder vi åtgärden `forward JSP` för att vidarebefordra begäran till sidan som nämns i attributet, dvs. jsp_action_42.jsp.

Jsp_action_42.jsp

Code Linje 10: När vi anropar action_jsp41.jsp vidarebefordras begäran till den här sidan, och vi får utdata som "Detta är efter vidarebefordran av sidan".

När vi kör ovanstående kod får vi följande utdata.

jsp:framåt

Produktion:

Vi anropar action_jsp41.jsp, men begäran vidarebefordras till jsp_action_42.jsp, och vi får utdata från den sidan som "Detta är efter vidarebefordran av sidan".

jsp:plugin Åtgärdstagg

  • Det används för att introducera Java komponenter i JSP, där Java Komponenterna kan antingen vara en applet eller en böna.
  • Den upptäcker webbläsaren och lägger till eller taggar i filen.

Syntax:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Här anger typen antingen ett objekt eller en böna.
  • Code anger klassnamnet för appleten eller bönan.
  • Codebasen innehåller basen URL som innehåller filer med klasser.

jsp:param Åtgärdstagg

  • Detta är ett underobjekt till plugin-objektet som beskrivs ovan.
  • Den måste innehålla en eller flera åtgärder för att tillhandahålla ytterligare parametrar.

Syntax:

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

Exempel på plugin och parameter:

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

Förklaring av koden:

Action_jsp5.jsp

Code Linje 10: Här använder vi jsp:plugin-objektet där vi tar tre attribut.

  • Typ – i det här fallet är det böna.
  • Code – filens namn.
  • Codebase – sökväg med paketnamnet.

Code Rad 11-14: Här tar vi jsp:params-objektet, under vilket det finns ett underobjekt -param-objekt med attributen name och value, och vi anger värdena för id och name i dessa attribut.

Student.java

Code 7-17: Vi använder getters och setters för variablerna id och name.

Code 19-20: Vi initierar variablerna id och namn.

Här får vi utdata i det fall då de inställda värdena för param används i studentbönan. I det här fallet får vi ingen utdata eftersom vi bara ställer in och hämtar värden för param men inte skriver ut det någonstans.

jsp:body Åtgärdstagg

  • Den här taggen används för att definiera XML dynamiskt, där Elements kan genereras under begäranstid snarare än kompileringstid.
  • Den definierar XML-filen, som genereras dynamiskt som en elementkropp.

Syntax:

<jsp:body></jsp:body>

Här skriver vi XML-body-taggen inuti dessa taggar.

jsp:attribute Åtgärdstagg

  • Den här taggen används för att definiera XML dynamiskt, där elementen kan genereras under begäran snarare än kompileringstiden.
  • Den definierar attributet för XML som genereras dynamiskt.

Syntax:

<jsp:attribute></jsp:attribute>

Här skriver vi attributtaggen för XML.

Exempel på kropp och attribut:

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>

Förklaring av koden:

Code Linje 10: Här definierar vi ett element, som genereras dynamiskt som XML, och dess namn kommer att vara GuruXML-element.

Code Rad 11-13: Här definierar vi ett attribut, som kommer att vara ett XML-attribut för den dynamiskt genererade XML-koden.

Code Linje 14: Här har vi body-åtgärden, där vi skriver XML-kroppen, som kommer att genereras dynamiskt.

När du kör ovanstående kod får du följande utdata:

jsp:attribut

Produktion:

Här får vi utdata från body-taggen för den genererade XML-koden.

jsp:text Åtgärdstagg

  • Den används för att infoga malltext i JSP-sidor.
  • Dess kropp innehåller inga andra element, och den innehåller endast text och EL-uttryck.

Syntax:

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

Här avser malltext endast malltext (som kan vara vilken generisk text som helst som behöver skrivas ut på JSP) eller vilken som helst EL uttryck.

Exempel:

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>

Förklaring av koden:

Code Linje 10: Här tar vi textobjektet för att skriva ut malltexten.

När du kör ovanstående kod får du följande utdata.

jsp:text

Produktion:

Vi får Guru Malltext, som placeras i textåtgärdsobjektet.

jsp:output Åtgärdstagg

  • Den anger XML-deklarationen eller DOCTYPE-deklarationen för JSP.
  • XML-deklarationen och DOCTYPE deklareras av utdata.

Syntax:

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

Här anger doctype-root-element rotelementet i XML-dokumentet i DOCTYPE. Doctype-system anger den doctype som genereras i utdata och ger en systemliteral.

Exempel:

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

Förklaring av koden:

Code Linje 10: Här använder vi output action-objektet för att generera en DOCTYPE, och internt kommer den att genereras i detta format:

Det kommer inte att finnas någon synlig utdata för detta eftersom det genereras internt.

Vanliga frågor

JSP Action Tags är element i XML-stil som styr servletmotorns beteende under förfrågningsbehandling. De gör det möjligt för utvecklare att inkludera filer, vidarebefordra förfrågningar, använda JavaBönor, bädda in applets och generera dynamiskt XML-utdata inuti en JSP-sida.

Direktiv bearbetas en gång vid sidans översättning och påverkar den övergripande sidstrukturen. Åtgärdstaggar utvärderas på nytt vid varje begäran, vilket gör dem lämpliga för dynamiskt beteende som att inkludera innehåll, vidarebefordra begäranden och arbeta med JavaBönor vid körning.

Använd jsp:include när du behöver sammanfoga innehåll från en annan sida till det aktuella svaret, till exempel sidhuvuden eller sidfot. Använd jsp:forward när kontrollen ska överföras helt till en annan resurs och den aktuella sidan inte ska producera ytterligare utdata.

jsp:useBean instansierar eller lokaliserar en JavaBean i ett givet omfång. jsp:setProperty tilldelar ett värde till en bean-egenskap, och jsp:getProperty läser egenskapsvärdet och skriver det som en sträng i svaret, vilket möjliggör en tydlig separation mellan presentation och bean-logik.

jsp:body och jsp:attribute definierar dynamiska XML-elementkroppar och attribut. jsp:text skriver litteral malltext och EL-uttryck, och jsp:output styr XML-deklarationen eller DOCTYPE som produceras när JSP:n renderar sitt svar.

AI integreras i JSP- och JEE-applikationer genom REST-anrop för att modellera API:er, inbäddade chattassistenter och rekommendationswidgetar som renderas på JSP-sidor. AI hjälper också till att generera standard JSP-kod, föreslå användning av åtgärdstaggar och validera bönkopplingar under utveckling.

Ja. AI-assisterade verktyg analyserar äldre JSP-kod, identifierar åtgärdstaggar och föreslår refaktoreringar till moderna ramverk som Spring MVC, Thymeleaf eller REST plus en applikation med en enda sida. De genererar även migreringstester, beroenderapporter och stegvisa refaktoreringsplaner.

Sammanfatta detta inlägg med: