Учебники

7) Теги действий JSP

Что такое JSP Action?

  • Действия JSP используют конструкцию в синтаксисе XML для управления поведением механизма сервлета.
  • Мы можем динамически вставлять файл, повторно использовать компоненты bean, пересылать пользователя на другую страницу и т. Д. С помощью таких действий JSP, как include и forward.
  • В отличие от директив, действия переоцениваются при каждом доступе к странице.

Синтаксис:

<jsp:action_name attribute="value" />

В этом уроке вы узнаете о действиях. Действия используются для управления поведением движка сервлета.

Сколько стандартных тегов действий доступно в JSP?

Существует 11 типов стандартных тегов действий:

  • JSP: useBean
  • JSP: включить
  • JSP: SetProperty
  • JSP: GetProperty
  • JSP: вперед
  • JSP: плагин
  • JSP: атрибут
  • JSP: тело
  • JSP: текст
  • JSP: пары
  • JSP: атрибут
  • JSP: выходной

  1. JSP: useBean:

  • Это имя действия используется, когда мы хотим использовать bean-компоненты на странице JSP.
  • С помощью этого тега мы можем легко вызвать бин.

Синтаксис jsp: UseBean :

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

Здесь он указывает идентификатор для этого компонента, а класс — это полный путь к классу компонента.

Пример:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Action JSP1</title>
  8. </head>
  9. <body>
  10. <jsp:useBean id="name" class="demotest.DemoClass">
  11. </body>
  12. </html>

Explanation of the code:

Code Line 10: In the above code we use «bean id» and «class path» of the bean.

  1. jsp:include

  • It also used to insert a jsp file into another file, just like include directive.
  • It is added during request processing phase

Syntax of jsp:include

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

Example:

Action_jsp2 (Code Line 10) we are including a date.jsp file

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Date Guru JSP</title>
  8. </head>
  9. <body>
  10. <jsp:include page="date.jsp" flush="true" />
  11. </body>
  12. </html>

Date.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <p>
  11. Today's date: <%= {new java.util.Date()).toLocaleString()%>
  12. </p>
  13. </body>
  14. </html>

Explanation of the code:

Action_jsp2.jsp

Code Line 10: In the first file we are including the date.jsp file in action_jsp2.jsp

Date.jsp:

Code Line 11: We are printing today’s date in code line 11 in date.jsp

When you execute the code following is the output.

Действия JSP: неявные объекты JSP, директива Page, директива Include, директива Taglib

Output:

  • It displays today’s date with time as date file is included in the main jsp

  1. jsp:setProperty

  • This property is used to set the property of the bean.
  • We need to define a bean before setting the property

Syntax:

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

Here, the name defines the bean whose property is set and property which we want to set.

Also, we can set value and param attribute.

Here value is not mandatory, and it defines the value which is assigned to the property.

Here param is the name of the request parameter using which value can be fetched.

The example of setproperty will be demonstrated below with getproperty

  1. jsp:getProperty

  • Это свойство используется для получения свойства бина.
  • Он преобразуется в строку и, наконец, вставляется в вывод.

Синтаксис:

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

Здесь имя бина, из которого должно быть получено свойство, и бин. Атрибут свойства — это имя свойства компонента, которое нужно получить.

Пример setProperty и getProperty:

TestBean.java:

  1. package demotest;
  2.  
  3. import java.iO.Serializable;
  4.  
  5. public class TestBean implements Serializable{
  6. private String msg = "null";
  7. public String getMsg() {
  8. return msg;
  9. }
  10. public void setMsg(String msg) {
  11. this.msg = msg;
  12. }
  13. }

Action_jsp3.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru Action 3</title>
  8. </head>
  9. <body>
  10. <jsp:useBean id="GuruTest" class="demotest.TestBean" />
  11. <jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
  12. <jsp:getProperty name="GuruTest" property="msg" />
  13. </body>
  14. </html>

Пояснение к коду:

TestBean.java:

Строка кода 5 : TheTestBean реализует сериализуемый класс. Это бобовый класс с установщиками геттеров в коде.

Строка кода 7 : здесь мы принимаем закрытую строковую переменную msg как «ноль»

Строка кода 9-14 : здесь мы используем методы получения и установки переменной «msg».

Action_jsp3.jsp

Строка кода 10: здесь мы используем тег «useBean», где он указывает bean-компонент, т. Е. TestBean, который должен использоваться в этом классе jsp

Строка кода 11: Здесь мы устанавливаем значение свойства msg для bean-компонента TestBean как «GuruTutorial».

CodeLine12: здесь, используя getProperty, мы получаем значение свойства msg для bean-компонента TestBean, т. Е. GuruTutorial, который есть в выходных данных.

Когда вы выполните приведенный выше код, вы получите следующий вывод:

Действия JSP: неявные объекты JSP, директива Page, директива Include, директива Taglib

Вывод:

В этом примере, используя TestBean, мы пытаемся установить свойство «gurutest» с помощью setProperty и получить значение свойства с помощью getProperty как «GuruTutorial»

  1. JSP: вперед:

Он используется для пересылки запроса на другую jsp или любую статическую страницу.

Здесь запрос может быть отправлен без параметров или с параметрами.

Синтаксис:

<jsp:forward page="value">

Здесь значение указывает, куда должен быть направлен запрос.

Пример:

Action_jsp41.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru Action JSP1</title>
  8. </head>
  9. <body>
  10. <jsp:forward page="jsp_action_42.jsp" />
  11. </body>
  12. </html>

Jsp_action_42.jsp

  1. Guru Action JSP2</title>
  2. </head>
  3. <body>
  4. <a>This is after forward page</a>
  5. </body>
  6. </html>

Пояснение к коду

Action_jsp41.jsp

Строка кода 10: Здесь мы используем действие пересылки JSP для пересылки запроса на страницу, указанную в атрибуте, т.е. jsp_action_42.jsp

Jsp_action_42.jsp

Строка кода 10: Как только мы вызываем action_jsp41.jsp, запрос перенаправляется на эту страницу, и мы получаем вывод «Это после пересылки страницы».

Когда мы выполняем приведенный выше код, мы получаем следующий вывод

Действия JSP: неявные объекты JSP, директива Page, директива Include, директива Taglib

Вывод:

Мы вызываем action_jsp41.jsp, но запрос перенаправляется в jsp_action_42.jsp, и мы получаем вывод с этой страницы как «Это после пересылки».

  1. JSP: плагин

  • Он используется для введения Java- компонентов в jsp, т. Е. Java-компоненты могут быть либо апплетом, либо bean-компонентом.
  • Он обнаруживает браузер и добавляет теги <object> или <embed> в файл

Синтаксис:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Здесь тип указывает либо объект, либо боб
  • Код указывает имя класса апплета или бина
  • Кодовая база содержит базовый URL, содержащий файлы классов

  1. JSP: пары

  • Это дочерний объект объекта плагина, описанного выше
  • Он должен содержать одно или несколько действий для предоставления дополнительных параметров.

Синтаксис:

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

Пример плагина и параметра

Action_jsp5.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Action guru jsp5</title>
  8. </head>
  9. <body>
  10. <jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  11. <jsp:params>
  12. <jsp:param name="id" value="5" />
  13. <jsp:param name="name" value="guru" />
  14. </jsp:params>
  15. </jsp:plugin>
  16. </body>
  17. </html>

Student.java

  1. package demotest;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Student implements Serializable {
  6. public String getName () {
  7. return name;
  8. }
  9. public void setName (String name) {
  10. this.name = name;
  11. }
  12. public int getId() {
  13. return id;
  14. }
  15. public void setId (int id) {
  16. this.id = id;
  17. }
  18. private String name = "null";
  19. private int id = 0;
  20. }

Пояснение к коду:

Action_jsp5.jsp

Строка кода 10: здесь мы берем объект jsp: plugin, где мы берем три атрибута

  • Тип — в данном случае это боб
  • Кодовое имя файла
  • Codebase — путь с именем пакета

Строка кода 11-14: Здесь мы берем объект jsp: params, в котором есть дочерний объект param с атрибутами name и value, и мы устанавливаем значения id и name в этих атрибутах.

Student.java

Код 7-17: Мы используем геттеры и сеттеры для переменных id и name

Код 19-20: мы инициализируем переменные id и name.

Здесь мы получим вывод в случае, когда заданные значения param будут использоваться в Student Bean. В этом случае у нас не будет никакого вывода, так как мы просто устанавливаем и получаем значения param, но не печатаем его где-либо.

  1. JSP: тело

  • Этот тег используется для динамического определения XML, т. Е. Элементы могут генерироваться во время запроса, а не во время компиляции.
  • Фактически он определяет XML, который генерируется динамически телом элемента.

Синтаксис:

<jsp:body></jsp:body>

Здесь мы пишем тег XML тела в этих тегах

  1. JSP: атрибут

  • Этот тег используется для динамического определения XML, т.е. элементы могут быть сгенерированы во время запроса, а не во время компиляции.
  • Фактически он определяет атрибут XML, который будет генерироваться динамически.

Синтаксис:

<jsp:attribute></jsp:attribute>

Здесь мы пишем атрибут тега XML.

Пример тела и атрибута:

Action_jsp6.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Action Guru JSP6</title>
  8. </head>
  9. <body>
  10. <jsp:element name="GuruXMLElement">
  11. <jsp:attribute name="GuruXMLattribute">
  12. Value
  13. </jsp:attribute>
  14. <jsp:body>Guru XML</jsp:body>
  15. </jsp:element>
  16. </body>
  17. </html>

Пояснение к коду:

Строка кода 10: Здесь мы определяем элемент, который динамически генерируется как XML, и его имя будет GuruXMLElement

Строка кода 11-13: здесь мы определяем атрибут, который будет атрибутом XML динамически генерируемого XML.

Строка кода 14: Здесь у нас есть действие body, где мы пишем тело XML, которое будет генерироваться в динамическом XML.

Когда вы выполните приведенный выше код, вы получите следующий вывод:

Действия JSP: неявные объекты JSP, директива Page, директива Include, директива Taglib

Вывод:

Здесь мы получаем вывод из тега body сгенерированного XML.

  1. JSP: текст

  • Используется для шаблонного текста на страницах JSP.
  • Его тело не содержит никаких других элементов, и оно содержит только текст и выражения EL.

Синтаксис:

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

Здесь текст шаблона относится только к тексту шаблона (который может быть любым общим текстом, который должен быть напечатан на jsp) или любым выражением EL.

Пример:

Action_jsp7.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru Action JSP7</title>
  8. </head>
  9. <body>
  10. <jsp:text>Guru Template Text</jsp:text>
  11. </body>
  12. </html>

Пояснение к коду:

Строка кода 10: здесь мы берем текстовый объект для печати текста шаблона

Когда вы выполните приведенный выше код, вы получите следующий вывод

Действия JSP: неявные объекты JSP, директива Page, директива Include, директива Taglib

Вывод:

Мы получаем текст шаблона гуру, который помещается в текстовые объекты действия.

11) вывод :

  • Он определяет объявление XML или объявление DOCTYPE jsp
  • Объявление XML и DOCTYPE объявляются выводом

Синтаксис:

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

Здесь doctype-root-element указывает корневой элемент документа XML в DOCTYPE.

Doctype-система указывает doctype, который генерируется в выходных данных и дает системный литерал

Пример:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Action Guru JSP8</title>
  8. </head>
  9. <body>
  10. <jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
  11. </body>
  12. </html>

Пояснение к коду:

Строка кода 10 : Здесь мы используем объект выходного действия для генерации DOCTYPE, и внутри он будет сгенерирован в следующем формате:

<! DOCTYPE html «http://www.w3.org/TR/html4/loose.dtd»>

Для этого не будет никакого вывода, так как это будет сгенерировано внутри.