JSP тагове за действие
Какво е JSP действие?
JSP действията използват конструкцията в синтаксиса на XML, за да контролират поведението на сървлет машината. Можем динамично да вмъкнем файл, да използваме повторно компонентите на beans, да препратим потребителя към друга страница и т.н. чрез JSP действия като включване и препращане. За разлика от директивите, действията се преоценяват при всяко отваряне на страницата.
Синтаксис:
<jsp:action_name attribute="value" />
В този урок ще научите за JSP стандартните действия. Етикетите за стандартно действие JSP се използват за контролиране на поведението на сървлет машината.
Списък на често използваните маркери за действие в JSP
В JSP има 11 вида стандартни маркери за действие и ето пълния им списък.
Име на маркер за действие | Синтаксис | Descriptйон |
---|---|---|
jsp:useBean | Използва се за извикване и използване на beans в JSP страницата. | |
jsp: включване | Включва друг 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:useBean
- Това име на действие се използва, когато искаме да използваме beans в JSP страницата.
- С този етикет можем лесно да извикаме bean.
Синтаксис на 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“ и „път на класа“ на bean.
jsp: включване
- Използва се и за вмъкване на 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 се използва за задаване на свойството на компонента.
- Трябва да дефинираме bean преди да зададем свойството
Синтаксис:
<jsp:setproperty name="" property="" >
Тук името дефинира bean-а, чието свойство е зададено и свойство, което искаме да зададем. Също така, можем да зададем атрибут стойност и param. Тук стойността не е задължителна и тя определя стойността, която се присвоява на свойството. Тук param е името на параметъра на заявката, използвайки чиято стойност може да бъде извлечена. Примерът за setproperty ще бъде демонстриран по-долу с getproperty
jsp:getProperty
- Това свойство се използва за получаване на свойството на зърна.
- Преобразува се в низ и накрая се вмъква в изхода.
Синтаксис:
<jsp:getAttribute name="" property="" >
Тук трябва да се дефинира името на компонента, от който трябва да се извлече свойството и компонента. Атрибутът на свойство е името на свойството на компонента, което трябва да бъде извлечено.
Пример за 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 клас със сетери за получаване в кода.
Кодов ред 7: Тук приемаме променливата частен низ msg като „нулева“
Кодов ред 9-14: Тук използваме гетери и сетери на променлива „msg“.
Action_jsp3.jsp
Кодов ред 10: Тук използваме етикет „useBean“, където той указва bean-а, т.е. TestBean, който трябва да се използва в този jsp клас
Кодов ред 11: Тук задаваме стойността за свойството msg за bean TestBean като „GuruTutorial“.
CodeLine12: Тук, използвайки getProperty, получаваме стойността на свойството msg за 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: Тук използваме forward JSP Action, за да препратим заявката към страницата, спомената в атрибута, т.е. jsp_action_42.jsp
Jsp_action_42.jsp
Кодов ред 10: След като извикаме action_jsp41.jsp, заявката се препраща към тази страница и получаваме резултата като „Това е след страницата за препращане“.
Когато изпълним горния код, получаваме следния изход
Изход:
Извикваме action_jsp41.jsp, но заявката се препраща към jsp_action_42.jsp и получаваме резултата от тази страница като „Това е след страницата за препращане“.
jsp: плъгин
- Използва се за въвеждане Java компоненти в jsp, т.е. Java компонентите могат да бъдат или аплет, или bean.
- Открива браузъра и добавя или JSP тагове във файла
Синтаксис:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- Тук типът определя или обект, или bean
- Кодът указва име на клас на аплет или компонент
- Кодовата база съдържа основния URL адрес, който съдържа файлове на класове
jsp:параметр
- Това е дъщерен обект на обекта на плъгина, описан по-горе
- Той трябва да съдържа едно или повече действия за предоставяне на допълнителни параметри.
Синтаксис:
<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 обект, където вземаме три атрибута
- Тип – в случая е боб
- Кодово име на файла
- Codebase – път с името на пакета
Кодов ред 11-14: Тук вземаме jsp: params обект, под който има дъщерен param обект с атрибутите име и стойност, и задаваме стойностите на id и name в тези атрибути.
Студент.java
Код 7-17: Използваме гетери и сетери за id и име на променливи
Код 19-20: инициализираме променливи id и name.
Тук ще получим изход в случай, че зададените стойности на param ще бъдат използвани в Student Bean. В този случай няма да имаме изход, тъй като просто задаваме и получаваме стойности на param, но не го отпечатваме никъде.
jsp: тяло
- Този таг се използва за динамично дефиниране на XML, т.е Елементи може да генерира по време на заявка, отколкото по време на компилация.
- Той всъщност дефинира XML, който се генерира динамично тялото на елемента.
Синтаксис:
<jsp:body></jsp:body>
Тук пишем XML body таг в тези тагове
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.
Когато изпълните горния код, получавате следния изход:
Изход:
Тук получаваме изхода от етикета body на генерирания XML.
jsp:текст
- Използва се за шаблониране на текст в 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: изход
- Той определя 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 и вътрешно той ще бъде генериран в този формат:
Няма да има никакви резултати за това, тъй като те ще бъдат генерирани вътрешно.