Ετικέτες δράσης JSP

Τι είναι το JSP Action;

Οι ενέργειες JSP χρησιμοποιούν τη δομή στη σύνταξη XML για να ελέγχουν τη συμπεριφορά του μηχανισμού servlet. Μπορούμε να εισαγάγουμε δυναμικά ένα αρχείο, να επαναχρησιμοποιήσουμε τα στοιχεία beans, να προωθήσουμε τον χρήστη σε άλλη σελίδα κ.λπ. μέσω των ενεργειών JSP όπως συμπερίληψη και προώθηση. Σε αντίθεση με τις οδηγίες, οι ενέργειες επαναξιολογούνται κάθε φορά που γίνεται πρόσβαση στη σελίδα.

Σύνταξη:

<jsp:action_name attribute="value" />

Σε αυτό το σεμινάριο, θα μάθετε για τις τυπικές ενέργειες JSP. Οι ετικέτες JSP Standard Action χρησιμοποιούνται για τον έλεγχο της συμπεριφοράς του μηχανισμού servlet.

Λίστα των συνηθισμένων ετικετών ενεργειών στο JSP

Υπάρχουν 11 τύποι τυπικών ετικετών ενεργειών στο JSP και εδώ είναι η πλήρης λίστα τους.

Όνομα ετικέτας δράσης Σύνταξη Τεχνικές Περιγραφές
jsp:useBean Χρησιμοποιείται για την επίκληση και τη χρήση φασολιών στη σελίδα JSP.
jsp:include Περιλαμβάνει ένα άλλο αρχείο JSP στο τρέχον αρχείο κατά την επεξεργασία αιτήματος.
jsp:setProperty Ορίζει την ιδιότητα ενός φασολιού.
jsp:getProperty Ανακτά την ιδιότητα ενός φασολιού και τη μετατρέπει σε συμβολοσειρά για έξοδο.
jsp: εμπρός Προωθεί το αίτημα σε άλλη JSP ή στατική σελίδα.
jsp:πρόσθετο Εισάγει Java στοιχεία όπως μικροεφαρμογές ή φασόλια στο JSP και δημιουργεί αυτόματα ετικέτες.
jsp:body Ορίζει στοιχεία XML που δημιουργούνται δυναμικά κατά την επεξεργασία αιτημάτων.
jsp:text κείμενο προτύπου Χρησιμοποιείται για την εισαγωγή κειμένου προτύπου σε σελίδες JSP, που περιέχουν μόνο κείμενο και εκφράσεις EL.
jsp:param Μεταβιβάζει παραμέτρους εντός της ενέργειας jsp:plugin για προσθήκη επιπλέον δεδομένων.
jsp:ιδιότητα Ορίζει χαρακτηριστικά XML που δημιουργούνται δυναμικά.
jsp:output Καθορίζει τη δήλωση XML ή DOCTYPE που θα χρησιμοποιηθεί στην έξοδο.

jsp:useBean

  • Αυτό το όνομα ενέργειας χρησιμοποιείται όταν θέλουμε να χρησιμοποιήσουμε φασόλια στη σελίδα JSP.
  • Με αυτήν την ετικέτα, μπορούμε εύκολα να επικαλεστούμε ένα φασόλι.

Σύνταξη του jsp: UseBean:

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

Εδώ καθορίζει το αναγνωριστικό για αυτό το bean και η κλάση είναι η πλήρης διαδρομή της κλάσης bean

Παράδειγμα:

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

Επεξήγηση του κώδικα:

Κωδικός Γραμμή 10: Στον παραπάνω κώδικα χρησιμοποιούμε “bean id” και “class path” του bean.

jsp:include

  • Χρησιμοποιήθηκε επίσης για την εισαγωγή ενός αρχείου jsp σε ένα άλλο αρχείο, όπως το να περιλαμβάνει Οδηγιών.
  • Προστίθεται κατά τη φάση επεξεργασίας αιτήματος

Σύνταξη του jsp:include

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

Παράδειγμα:

Action_jsp2 (Κωδικός Γραμμή 10) συμπεριλαμβάνουμε ένα αρχείο 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>

Ημερομηνία.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>

Επεξήγηση του κώδικα:

Action_jsp2.jsp

Κωδικός Γραμμή 10: Στο πρώτο αρχείο συμπεριλαμβάνουμε το αρχείο date.jsp στο action_jsp2.jsp

Date.jsp:

Κωδικός Γραμμή 11: Εκτυπώνουμε τη σημερινή ημερομηνία στη γραμμή κώδικα 11 στο date.jsp

Όταν εκτελείτε τον κώδικα που ακολουθεί είναι η έξοδος.

jsp:include

Παραγωγή:

  • Εμφανίζει τη σημερινή ημερομηνία με την ώρα καθώς το αρχείο ημερομηνίας περιλαμβάνεται στο κύριο jsp

jsp:setProperty

  • Αυτή η ιδιότητα τυπικών ενεργειών στο JSP χρησιμοποιείται για τον ορισμό της ιδιότητας του φασολιού.
  • Πρέπει να ορίσουμε ένα φασόλι πριν ορίσουμε την ιδιότητα

Σύνταξη:

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

Εδώ, το όνομα ορίζει το bean του οποίου η ιδιότητα έχει οριστεί και η ιδιότητα που θέλουμε να ορίσουμε. Επίσης, μπορούμε να ορίσουμε την τιμή και το χαρακτηριστικό param. Εδώ η τιμή δεν είναι υποχρεωτική και καθορίζει την τιμή που εκχωρείται στην ιδιότητα. Εδώ η παράμετρος είναι το όνομα της παραμέτρου αιτήματος χρησιμοποιώντας την τιμή που μπορεί να ληφθεί. Το παράδειγμα του setproperty θα παρουσιαστεί παρακάτω με το getproperty

jsp:getProperty

  • Αυτή η ιδιότητα χρησιμοποιείται για την απόκτηση της ιδιότητας του φασολιού.
  • Μετατρέπεται σε συμβολοσειρά και τελικά εισάγεται στην έξοδο.

Σύνταξη:

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

Εδώ, θα πρέπει να οριστεί το όνομα του φασολιού από το οποίο πρέπει να ανακτηθεί η ιδιότητα και το φασόλι. Το χαρακτηριστικό γνώρισμα είναι το όνομα της ιδιότητας bean που πρόκειται να ανακτηθεί.

Παράδειγμα setProperty και 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>

Επεξήγηση του κώδικα:

TestBean.java:

Κωδικός Γραμμή 5: Το TheTestBean υλοποιεί τη σειροποιήσιμη κλάση. Είναι μια κλάση bean με ρυθμιστές getters στον κώδικα.

Κωδικός Γραμμή 7: Εδώ λαμβάνουμε το μήνυμα της μεταβλητής ιδιωτικής συμβολοσειράς ως "null"

Κωδικός Γραμμή 9-14: Εδώ χρησιμοποιούμε λήπτες και ρυθμιστές της μεταβλητής "msg".

Action_jsp3.jsp

Κωδικός Γραμμή 10: Εδώ χρησιμοποιούμε την ετικέτα "useBean", όπου καθορίζει το bean, δηλαδή TestBean που πρέπει να χρησιμοποιηθεί σε αυτήν την κλάση jsp

Κωδικός Γραμμή 11: Εδώ ορίζουμε την τιμή για την ιδιότητα msg για το Bean TestBean ως "GuruTutorial".

CodeLine12: Εδώ, χρησιμοποιώντας το getProperty, λαμβάνουμε την τιμή του μηνύματος ιδιότητας για το bean TestBean, δηλαδή το GuruTutorial που υπάρχει στην έξοδο

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

jsp:getProperty

Παραγωγή:

Σε αυτό το παράδειγμα, χρησιμοποιώντας το TestBean προσπαθούμε να ορίσουμε την ιδιότητα "gurutest" χρησιμοποιώντας setProperty και να πάρουμε την τιμή της ιδιότητας χρησιμοποιώντας το getProperty ως "GuruTutorial"

jsp: εμπρός

Χρησιμοποιείται για την προώθηση της αίτησης σε άλλο jsp ή σε οποιαδήποτε στατική σελίδα.

Εδώ το αίτημα μπορεί να προωθηθεί χωρίς παραμέτρους ή με παραμέτρους.

Σύνταξη:

<jsp:forward page="value">

Εδώ η τιμή αντιπροσωπεύει πού πρέπει να προωθηθεί το αίτημα.

Παράδειγμα:

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>

Επεξήγηση του κώδικα

Action_jsp41.jsp

Κωδικός Γραμμή 10: Εδώ χρησιμοποιούμε την προώθηση JSP Action για να προωθήσουμε το αίτημα στη σελίδα που αναφέρεται στο χαρακτηριστικό, π.χ. jsp_action_42.jsp

Jsp_action_42.jsp

Κωδικός Γραμμή 10: Μόλις καλέσουμε το action_jsp41.jsp, το αίτημα προωθείται σε αυτήν τη σελίδα και λαμβάνουμε το αποτέλεσμα ως "This is after forward page."

Όταν εκτελούμε τον παραπάνω κώδικα, έχουμε την ακόλουθη έξοδο

jsp: εμπρός

Παραγωγή:

Καλούμε το action_jsp41.jsp, αλλά το αίτημα προωθείται στο jsp_action_42.jsp και λαμβάνουμε την έξοδο από αυτήν τη σελίδα ως "This is after forward page".

jsp:πρόσθετο

  • Χρησιμοποιείται για την εισαγωγή Java συστατικά σε jsp, δηλαδή, τα στοιχεία java μπορεί να είναι είτε μια μικροεφαρμογή είτε ένα φασόλι.
  • Εντοπίζει το πρόγραμμα περιήγησης και προσθέτει ή Ετικέτες JSP στο αρχείο

Σύνταξη:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Εδώ ο τύπος καθορίζει είτε ένα αντικείμενο είτε ένα φασόλι
  • Ο κώδικας καθορίζει το όνομα κλάσης της μικροεφαρμογής ή του φασολιού
  • Η βάση κώδικα περιέχει τη βασική διεύθυνση URL που περιέχει αρχεία κλάσεων

jsp:param

  • Αυτό είναι θυγατρικό αντικείμενο του αντικειμένου προσθήκης που περιγράφεται παραπάνω
  • Πρέπει να περιέχει μία ή περισσότερες ενέργειες για την παροχή πρόσθετων παραμέτρων.

Σύνταξη:

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

Παράδειγμα προσθήκης και παραμέτρου

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>

Μαθητής.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;
	
}

Επεξήγηση του κώδικα:

Action_jsp5.jsp

Κωδικός Γραμμή 10: Εδώ παίρνουμε το αντικείμενο jsp: plugin όπου παίρνουμε τρία χαρακτηριστικά

  • Τύπος – σε αυτή την περίπτωση είναι φασόλι
  • Κωδικό όνομα του αρχείου
  • Βάση κώδικα – διαδρομή με το όνομα του πακέτου

Κωδικός Γραμμή 11-14: Εδώ παίρνουμε το αντικείμενο jsp: params κάτω από το οποίο υπάρχει ένα θυγατρικό αντικείμενο param με τα χαρακτηριστικά name και value και ορίζουμε τις τιμές id και name σε αυτά τα χαρακτηριστικά.

Μαθητής.java

Κωδικός 7-17: Χρησιμοποιούμε getters και setters για μεταβλητές id και name

Κωδικός 19-20: αρχικοποιούμε τις μεταβλητές id και όνομα.

Εδώ θα λάβουμε έξοδο στην περίπτωση που οι τιμές του συνόλου του param θα χρησιμοποιηθούν στο Student Bean. Σε αυτήν την περίπτωση, δεν θα έχουμε έξοδο, καθώς απλώς ορίζουμε και λαμβάνουμε τις τιμές του param αλλά δεν το εκτυπώνουμε πουθενά.

jsp:body

  • Αυτή η ετικέτα χρησιμοποιείται για τον δυναμικό ορισμό της XML, π.χ Στοιχεία μπορεί να δημιουργήσει κατά τη διάρκεια του χρόνου αιτήματος παρά του χρόνου μεταγλώττισης.
  • Στην πραγματικότητα ορίζει το XML, το οποίο δημιουργείται δυναμικά σώμα στοιχείου.

Σύνταξη:

<jsp:body></jsp:body>

Εδώ γράφουμε την ετικέτα σώματος XML μέσα σε αυτές τις ετικέτες

jsp:ιδιότητα

  • Αυτή η ετικέτα χρησιμοποιείται για να ορίσει δυναμικά το XML, δηλαδή τα στοιχεία μπορούν να δημιουργηθούν κατά τη διάρκεια του χρόνου αιτήματος παρά του χρόνου μεταγλώττισης
  • Στην πραγματικότητα ορίζει το χαρακτηριστικό της XML που θα δημιουργηθεί δυναμικά.

Σύνταξη:

<jsp:attribute></jsp:attribute>

Εδώ γράφουμε την ετικέτα χαρακτηριστικών της XML.

Παράδειγμα σώματος και χαρακτηριστικού:

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>

Επεξήγηση του κώδικα:

Κωδικός Γραμμή 10: Εδώ ορίζουμε στοιχείο, το οποίο δημιουργείται δυναμικά ως XML, και το όνομά του θα είναι GuruXMLElement

Κωδικός Γραμμή 11-13: Εδώ ορίζουμε ένα χαρακτηριστικό που θα χαρακτηρίζει το XML του XML που δημιουργείται δυναμικά.

Κωδικός Γραμμή 14: Εδώ έχουμε την ενέργεια σώματος όπου γράφουμε το σώμα XML που θα δημιουργηθεί σε δυναμικά XML.

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

jsp:ιδιότητα

Παραγωγή:

Εδώ παίρνουμε την έξοδο από την ετικέτα σώματος της XML που δημιουργήθηκε.

jsp:text

  • Χρησιμοποιείται για το πρότυπο κειμένου σε σελίδες JSP.
  • Το σώμα του δεν περιέχει άλλα στοιχεία και περιέχει μόνο κείμενο και εκφράσεις EL.

Σύνταξη:

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

Εδώ το κείμενο προτύπου αναφέρεται μόνο σε κείμενο προτύπου (το οποίο μπορεί να είναι οποιοδήποτε γενικό κείμενο που πρέπει να εκτυπωθεί σε jsp ) ή οποιοδήποτε έκφραση EL.

Παράδειγμα:

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>

Επεξήγηση του κώδικα:

Κωδικός Γραμμή 10: Εδώ παίρνουμε αντικείμενο κειμένου για να εκτυπώσουμε το κείμενο του προτύπου

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο

jsp:text

Παραγωγή:

Λαμβάνουμε κείμενο προτύπου Guru, το οποίο τοποθετείται μέσα σε αντικείμενα δράσης κειμένου.

jsp:output

  • Καθορίζει τη δήλωση XML ή τη δήλωση DOCTYPE του jsp
  • Η δήλωση XML και το DOCTYPE δηλώνονται από την έξοδο

Σύνταξη:

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

Εδώ, το doctype-root-element υποδεικνύει το ριζικό στοιχείο του εγγράφου XML στο DOCTYPE. Doctype-system υποδεικνύει doctype που δημιουργείται στην έξοδο και δίνει το σύστημα κυριολεκτικά

Παράδειγμα:

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

Επεξήγηση του κώδικα:

Κωδικός Γραμμή 10: Εδώ χρησιμοποιούμε αντικείμενο δράσης εξόδου για τη δημιουργία ενός DOCTYPE και εσωτερικά θα δημιουργηθεί σε αυτήν τη μορφή:

Δεν θα υπάρχει έξοδος για αυτό, καθώς θα δημιουργηθεί εσωτερικά.