Etichete de acțiune JSP

Ce este JSP Action?

Acțiunile JSP folosesc construcția în sintaxa XML pentru a controla comportamentul motorului de servlet. Putem insera dinamic un fișier, reutiliza componentele beans, redirecționăm utilizatorul către o altă pagină etc. prin acțiuni JSP cum ar fi include și forward. Spre deosebire de directive, acțiunile sunt reevaluate de fiecare dată când pagina este accesată.

Sintaxă:

<jsp:action_name attribute="value" />

În acest tutorial, veți afla despre acțiunile standard JSP. Etichetele JSP Standard Action sunt folosite pentru a controla comportamentul motorului servlet.

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 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.

jsp:useBean

  • Acest nume de acțiune este folosit atunci când dorim să folosim fasole în pagina JSP.
  • Cu această etichetă, putem invoca cu ușurință o fasole.

Sintaxa jsp: UseBean:

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

Aici specifică identificatorul pentru acest bean și clasa 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:

Linia de cod 10: În codul de mai sus folosim „bean id” și „class path” al bean-ului.

jsp:include

  • De asemenea, folosea pentru a insera un fișier jsp într-un alt fișier, la fel ca includerea Directivele.
  • Se adaugă în timpul fazei de procesare a cererii

Sintaxa lui jsp:include

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

Exemplu:

Action_jsp2 (Linia de cod 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

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

Date.jsp:

Linia de cod 11: Tipărim data de astăzi în linia de cod 11 din date.jsp

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

jsp:include

ieșire:

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

jsp:setProperty

  • Această proprietate a acțiunilor standard în JSP este folosită pentru a seta proprietatea bean-ului.
  • Trebuie să definim un bean înainte de a seta proprietatea

Sintaxă:

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

Aici, numele definește bobul a cărui proprietate este setată și proprietatea pe care dorim să o setăm. De asemenea, putem seta valoarea și atributul param. Aici valoarea nu este obligatorie și definește valoarea care este atribuită proprietății. Aici param este numele parametrului de solicitare folosind valoarea care poate fi preluată. Exemplul setproperty va fi demonstrat mai jos cu getproperty

jsp:getProperty

  • Această proprietate este folosită pentru a obține proprietatea fasolei.
  • Se transformă într-un șir și în cele din urmă se inserează în ieșire.

Sintaxă:

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

Aici, numele bean-ului de la care trebuie să fie preluată proprietatea și bean-ul ar trebui definit. Atributul de proprietate este numele proprietății bean care urmează să fie recuperată.

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:

Linia de cod 5: TheTestBean implementează clasa serializabilă. Este o clasă bean cu setari getters în cod.

Linia de cod 7: Aici luăm mesajul variabil șir privat ca „null”

Linia de cod 9-14: Aici folosim gettere și setari ale variabilei „msg”.

Action_jsp3.jsp

Linia de cod 10: Aici folosim eticheta „useBean”, unde specifică bean-ul, adică TestBean, care trebuie utilizat în această clasă jsp

Linia de cod 11: Aici setăm valoarea proprietății msg pentru bean TestBean ca „GuruTutorial”.

CodeLine12: Aici, folosind getProperty, obținem valoarea proprietății msg pentru bean TestBean, adică GuruTutorial, care este acolo î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, încercăm să setăm proprietatea „gurutest” folosind setProperty și să obținem valoarea proprietății folosind getProperty ca „GuruTutorial”

jsp:forward

Este folosit pentru a redirecționa cererea către alt jsp sau 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

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

Jsp_action_42.jsp

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

Când executăm codul de mai sus, obținem următoarea ieșire

jsp:forward

ieșire:

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

jsp:plugin

  • Este folosit pentru a introduce Java componente în jsp, adică componentele java pot fi fie un applet, fie un bean.
  • Detectează browserul și adaugă sau Etichete JSP în fișier

Sintaxă:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Aici tipul specifică fie un obiect, fie o fasole
  • Codul specifică numele clasei de applet sau bean
  • Baza codului conține adresa URL de bază care conține fișiere de clase

jsp:param

  • Acesta este obiectul 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 param

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

Linia de cod 10: Aici luăm jsp: obiect plugin unde luăm trei atribute

  • Tip – în acest caz este fasole
  • Numele de cod al fișierului
  • Bază de cod – calea cu numele pachetului

Linia de cod 11-14: Aici luăm jsp: params object sub care există un obiect param copil cu atributele nume și valoare și setăm valorile id și name în aceste atribute.

Student.java

Codul 7-17: Folosim gettere și setari pentru variabilele id și nume

Cod 19-20: inițializam variabilele id și nume.

Aici vom obține rezultate în cazul în care valorile setate ale paramului vor fi utilizate în Student Bean. În acest caz, nu vom avea nicio ieșire, deoarece doar setăm și obținem valorile param, dar nu le imprimăm nicăieri.

jsp:corp

  • Această etichetă este folosită pentru a defini în mod dinamic XML, adică Elemente de poate genera în timpul cererii decât în ​​timpul compilarii.
  • De fapt definește XML, care este generat dinamic corpul elementului.

Sintaxă:

<jsp:body></jsp:body>

Aici scriem eticheta XML body în cadrul acestor etichete

jsp:atribut

  • Această etichetă este folosită pentru a defini dinamic XML, adică elementele pot fi generate în timpul cererii decât în ​​timpul compilației
  • Acesta definește de fapt atributul XML care va fi generat dinamic.

Sintaxă:

<jsp:attribute></jsp:attribute>

Aici scriem eticheta de atribut XML.

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:

Linia de cod 10: Aici suntem un element definitoriu, care a generat dinamic ca XML, iar numele său va fi GuruXMLElement

Linia de cod 11-13: Aici definim un atribut care va fi atributul XML al XML-ului generat dinamic.

Linia de cod 14: Aici avem acțiune corporală în care scriem corpul XML care va fi generat în XML dinamic.

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

jsp:atribut

ieșire:

Aici obținem rezultatul din eticheta body a XML-ului generat.

jsp:text

  • Este folosit pentru modelarea textului în paginile 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 care trebuie tipărit pe jsp ) sau 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:

Linia de cod 10: Aici luăm obiect text pentru a tipări textul șablonului

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

jsp:text

ieșire:

Primim textul șablonului Guru, care este plasat în obiectele de acțiune text.

jsp:ieșire

  • 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 în DOCTYPE. Doctype-system indică doctype care este generat în ieșire și oferă sistem literal

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:

Linia de cod 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 pentru aceasta, deoarece aceasta va fi generată intern.