JSP тагове за действие
⚡ Умно обобщение
JSP Action Tags използва XML синтаксис за контрол на поведението на servlet engine, което позволява на разработчиците да включват файлове, да препращат заявки, да работят с JavaBeans и вграждане на динамично съдържание по време на обработка на заявки.
Какво е JSP таг за действие?
JSP Action Tags използват XML синтактични конструкции, за да контролират поведението на сървлет енджин-а. Разработчиците могат динамично да вмъкват файл, да го използват повторно JavaBean компонентите пренасочват потребителя към друга страница и извършват подобни операции по време на изпълнение чрез JSP Action Tags, като include и forward. За разлика от директивите, action tags се преоценяват всеки път, когато се осъществява достъп до страницата, което ги прави идеални за динамично поведение по време на обработка на заявки.
Синтаксис:
<jsp:action_name attribute="value" />
В този урок за стандартните JSP етикети за действия ще научите как работи всеки етикет за действие, какво прави и как да го приложите в реален JSP файл.
Списък на често използваните етикети за действия в JSP
В JSP има 11 вида стандартни маркери за действие и ето пълния им списък.
| Име на маркер за действие | Синтаксис | Descriptйон |
|---|---|---|
| jsp:useBean | Използва се за извикване и използване на beans в JSP страницата. | |
| jsp: включване | <jsp:include page=”page URL”flush=”true/false” /> | Включва друг JSP файл в текущия файл по време на обработка на заявката. |
| jsp:setProperty | Задава свойството на bean. | |
| jsp:getProperty | Извлича свойството на bean и го преобразува в низ за изход. | |
| jsp: напред | Препраща заявката към друга JSP или статична страница. | |
| jsp: плъгин | Въвежда Java компоненти като аплети или бобове в JSP и автоматично генерира тагове. | |
| jsp: тяло | Дефинира XML елементи, които се генерират динамично по време на обработка на заявка. | |
| jsp:текст | шаблонен текст | Използва се за вмъкване на шаблонен текст в JSP страници, съдържащ само текст и EL изрази. |
| jsp:параметр | Подава параметри в действието jsp:plugin за добавяне на допълнителни данни. | |
| jsp:атрибут | Дефинира XML атрибути, които се генерират динамично. | |
| jsp: изход | Указва XML или DOCTYPE декларацията, която да се използва в изхода. |
След като вече имате пълния списък, ще разгледаме всеки един от тези JSP Action Tags един по един със синтаксис и работещ пример.
jsp:useBean Етикет за действие
- Това име на действие се използва, когато искате да използвате JavaБийновете в JSP страницата.
- С този таг можете лесно да извикате been и да използвате повторно компоненти от страна на сървъра.
Синтаксис на jsp:useBean:
<jsp:useBean id="" class="" />
Тук id указва идентификатора за този бийн, а class е пълният път до класа на бийн.
Пример:
<%@ 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>
Обяснение на кода:
Code Ред 10: В горния код използвате „bean id“ и „class path“ на bean-а.
jsp:include Етикет за действие
- jsp:include се използва за вмъкване на JSP файл в друг файл по време на обработка на заявка, подобно на включването директиви.
- Добавя се по време на фазата на обработка на заявката, което означава, че включеното съдържание се оценява всеки път, когато страницата бъде заявена.
Синтаксис на jsp:include:
<jsp:include page="page URL" flush="true/false">
Пример:
В Action_jsp2 (Code Ред 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
Code Ред 10: В първия файл включваме файла date.jsp в action_jsp2.jsp.
Date.jsp:
Code Ред 11: Отпечатваме днешната дата в ред 11 на кода в date.jsp.
Когато изпълните кода, резултатът е следният.
Изход:
- Показва днешната дата с часа, тъй като файлът с дата е включен в главната JSP страница.
jsp:setProperty Етикет за действие
- Това стандартно действие в JSP се използва за задаване на свойството на бина.
- Трябва да дефинирате бийн, преди да зададете свойството.
Синтаксис:
<jsp:setProperty name="" property="" >
Тук, името (name) определя бина, чието свойство е зададено, а property е свойството, което искате да зададете. Можете също да зададете атрибутите value и param. Тук value не е задължително и определя стойността, която е присвоена на свойството. Тук param е името на параметъра на заявката, чрез който стойността може да бъде извлечена. Примерът за setProperty ще бъде демонстриран по-долу с getProperty.
jsp:getProperty Етикет за действие
- Това действие се използва за получаване на свойството на боба.
- Той преобразува свойството в низ и накрая го вмъква в изхода.
Синтаксис:
<jsp:getProperty name="" property="" >
Тук името е бийнът, от който трябва да се извлече свойството, и бийнът трябва да бъде дефиниран. Атрибутът property е името на свойството на бийнa, което трябва да се извлече.
Пример за 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:
Code Line 5TestBean имплементира класа Serializable. Това е bean клас с getters и setters в кода.
Code Line 7Тук приемаме частната низова променлива msg като „null“.
Code Ред 9-14Тук използваме геттери и сетери на променливата „msg“.
Action_jsp3.jsp
Code Ред 10: Тук използваме тага „useBean“, където той указва бийн-а (TestBean), който трябва да се използва в този JSP клас.
Code Ред 11: Тук задаваме стойността на свойството msg за bean TestBean като „GuruУрок“.
Code Ред 12: Тук, използвайки getProperty, получаваме стойността на свойството msg за bean TestBean (GuruУрок), което е показано в резултата.
Когато изпълните горния код, получавате следния изход:
Изход:
В този пример, използвайки TestBean, задаваме свойството „msg“ чрез setProperty и получаваме стойността на свойството, използвайки getProperty, като „GuruУрок“.
jsp:forward Етикет за действие
Тагът за действие jsp:forward се използва за пренасочване на заявката към друг 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
Code Ред 10: Тук използваме действието forward JSP, за да препратим заявката към страницата, посочена в атрибута, т.е. jsp_action_42.jsp.
Jsp_action_42.jsp
Code Ред 10: След като извикаме action_jsp41.jsp, заявката се препраща към тази страница и получаваме резултата „Това е след препратената страница“.
Когато изпълним горния код, получаваме следния изход.
Изход:
Извикваме action_jsp41.jsp, но заявката се препраща към jsp_action_42.jsp и получаваме резултата от тази страница като „Това е след препратената страница“.
jsp:plugin Етикет за действие
- Използва се за въвеждане Java компоненти в JSP, където Java Компонентите могат да бъдат или аплет, или боб.
- Той открива браузъра и добавя или тагове във файла.
Синтаксис:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- Тук типът определя или обект, или бийн.
- Code указва името на класа на аплета или бина.
- Codeбазата съдържа основата 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
Code Ред 10: Тук използваме обекта jsp:plugin, където приемаме три атрибута.
- Тип – в този случай това е боб.
- Code – име на файла.
- Codebase – път с името на пакета.
Code Ред 11-14: Тук вземаме обекта jsp:params, под който има дъщерен обект param с атрибутите name и value, и задаваме стойностите на id и name в тези атрибути.
Студент.java
Code 7-17: Използваме геттери и сетери за променливите id и name.
Code 19-20: Инициализираме променливите id и name.
Тук ще получим изход в случай, че зададените стойности на param ще бъдат използвани в Student bean-а. В този случай няма да имаме никакъв изход, тъй като само задаваме и получаваме стойности на param, но не ги отпечатваме никъде.
jsp:body Етикет за действие
- Този етикет се използва за динамично дефиниране на XML, където Елементи може да се генерира по време на заявката, а не по време на компилацията.
- Той дефинира XML, който се генерира динамично като тяло на елемент.
Синтаксис:
<jsp:body></jsp:body>
Тук пишем XML тага за тяло в рамките на тези тагове.
jsp:attribute Етикет за действие
- Този етикет се използва за динамично дефиниране на 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>
Обяснение на кода:
Code Ред 10: Тук дефинираме елемент, който се генерира динамично като XMLи името му ще бъде GuruXMLЕлемент.
Code Ред 11-13: Тук дефинираме атрибут, който ще бъде XML атрибут на динамично генерирания XML.
Code Ред 14: Тук имаме действието body, където пишем XML тялото, което ще се генерира динамично.
Когато изпълните горния код, получавате следния изход:
Изход:
Тук получаваме резултата от тага body на генерирания 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>
Обяснение на кода:
Code Ред 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>
Обяснение на кода:
Code Ред 10: Тук използваме обекта за изходно действие, за да генерираме DOCTYPE и вътрешно той ще бъде генериран в този формат:
Няма да има видим изход за това, тъй като ще се генерира вътрешно.






