Ετικέτες δράσης 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
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 που υπάρχει στην έξοδο
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:
Παραγωγή:
Σε αυτό το παράδειγμα, χρησιμοποιώντας το 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."
Όταν εκτελούμε τον παραπάνω κώδικα, έχουμε την ακόλουθη έξοδο
Παραγωγή:
Καλούμε το 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.
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:
Παραγωγή:
Εδώ παίρνουμε την έξοδο από την ετικέτα σώματος της 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: Εδώ παίρνουμε αντικείμενο κειμένου για να εκτυπώσουμε το κείμενο του προτύπου
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο
Παραγωγή:
Λαμβάνουμε κείμενο προτύπου 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 και εσωτερικά θα δημιουργηθεί σε αυτήν τη μορφή:
Δεν θα υπάρχει έξοδος για αυτό, καθώς θα δημιουργηθεί εσωτερικά.