useBean Example

Работа с JavaBeans

Уже в конце 90-х язык Java начал активно использоваться для больших серверных приложений, где количество классов измеряется десятками и сотнями тысяч. Тогда и появилась идея стандартизировать вид Java-объектов.

Весь язык Java трогать не стали, чтобы не лишать его гибкости. Ну, обратная совместимость и все такое. Тогда разработали ряд критериев для Java-объектов нового поколения и назвали такие объекты Java Beans. Java названа в честь популярной марки кофе, так что Java Beans дословно переводится, как «кофе бобы».

Самые важные критерии были такие:

  • Доступ к внутренним полям класса идет через метод getProperty() .
  • Запись данных в поля класса идет через метод setProperty(value) .
  • У класса должен быть публичный конструктор без параметров.
  • Класс должен быть сериализуемым.
  • Класс должен иметь переопределенные методы equals() , hashCode() и toString() .

Такой подход позволил сделать приложения менее связными. Всегда понятно:

  • как создать объект – есть публичный конструктор по умолчанию;
  • как получить/установить значение свойства;
  • как передать/сохранить объект (используем сериализацию);
  • как сравнивать объекты (используем equals() и hashCode());
  • как вывести информацию об объекте в лог (используем toString).

Сейчас это фактически стандарт отрасли, а когда-то был новым веянием. Кажется, что уже все так пишут, хотя если вспомнить HttpClient и его Builders, то видно, что новый стандарт кому-то сильно жмет.

Такие объекты получили широкое распространение там, где их основная смысловая нагрузка, — это хранение данных. Например, в графических интерфейсах, базах данных и JSP-страницах.

Читайте также:  Java enum получить значение по индексу

6.2 JSP и JavaBeans

Одной из причин появления JSP было то, что работу над ним можно было отдать фронтендщикам. А что? У тебя есть человек, который разбирается в HTML, пусть он JSP и пишет. Java-программисты пишут свою часть, фронтендщики свою – все отлично.

И все было неплохо до тех пор, пока фронтендщикам не пришлось разбираться в написанном Java-коде, встроенном в JSP. Или, что еще хуже, писать такой код самим.

Java-программисты тоже от такого были не в восторге. Ну скажите на милость, какие из верстальщиков бэкенд-разработчики? Да они же кроме скриптов ничего писать не могут. Да и вся парадигма программирования утверждает, что смешивать разные языки в одном файле – дурной тон.

Тогда и появилась идея, что мол дать фронтендщикам возможность работать с Java-объектами, как с HTML-кодом. Каждый HTML-тег – это тоже некий объект со своими полями, почему бы по похожему принципу не построить работу с Java-объектами?

Сказано-сделано. Добавили специальные теги и понеслось.

 useBean class text-user">тип-объекта" scope text-viola">session"/> 

Эта команда создавала объект с типом тип-объекта и клала его в сессию под именем имя .

Объекты можно было хранить в одном из четырех хранилищ: application (глобальное), session, request и page. Также можно было установить свойство таких объектов:

 setProperty name="имя" property text-red">propName" value text-user">string constant"/> 

Получить свойство таких объектов можно было так:

 getProperty name="имя" property text-red">propName"/> 

Пример использования тегов:

   

Using JavaBeans in JSP

class text-user">com.example.TestBean" /> = "test" property text-viola">message" value text-user">Hello JSP. " />

Что-то делаем важное

= "test" property text-viola">message" />

Источник

JSP — JavaBeans

A JavaBean is a specially constructed Java class written in the Java and coded according to the JavaBeans API specifications.

Following are the unique characteristics that distinguish a JavaBean from other Java classes −

  • It provides a default, no-argument constructor.
  • It should be serializable and that which can implement the Serializable interface.
  • It may have a number of properties which can be read or written.
  • It may have a number of «getter» and «setter» methods for the properties.

JavaBeans Properties

A JavaBean property is a named attribute that can be accessed by the user of the object. The attribute can be of any Java data type, including the classes that you define.

A JavaBean property may be read, write, read only, or write only. JavaBean properties are accessed through two methods in the JavaBean’s implementation class −

For example, if property name is firstName, your method name would be getFirstName() to read that property. This method is called accessor.

For example, if property name is firstName, your method name would be setFirstName() to write that property. This method is called mutator.

A read-only attribute will have only a getPropertyName() method, and a write-only attribute will have only a setPropertyName() method.

JavaBeans Example

Consider a student class with few properties −

package com.tutorialspoint; public class StudentsBean implements java.io.Serializable < private String firstName = null; private String lastName = null; private int age = 0; public StudentsBean() < >public String getFirstName() < return firstName; >public String getLastName() < return lastName; >public int getAge() < return age; >public void setFirstName(String firstName) < this.firstName = firstName; >public void setLastName(String lastName) < this.lastName = lastName; >public void setAge(Integer age) < this.age = age; >>

Accessing JavaBeans

The useBean action declares a JavaBean for use in a JSP. Once declared, the bean becomes a scripting variable that can be accessed by both scripting elements and other custom tags used in the JSP. The full syntax for the useBean tag is as follows −

Here values for the scope attribute can be a page, request, session or application based on your requirement. The value of the id attribute may be any value as a long as it is a unique name among other useBean declarations in the same JSP.

Following example shows how to use the useBean action −

     

The date/time is

You will receive the following result − −

The date/time is Thu Sep 30 11:18:11 GST 2010

Accessing JavaBeans Properties

Along with action, you can use the action to access the get methods and the action to access the set methods. Here is the full syntax −

The name attribute references the id of a JavaBean previously introduced to the JSP by the useBean action. The property attribute is the name of the get or the set methods that should be invoked.

Following example shows how to access the data using the above syntax −

         

Student First Name:

Student Last Name:

Student Age:

Let us make the StudentsBean.class available in CLASSPATH. Access the above JSP. the following result will be displayed −

Student First Name: Zara Student Last Name: Ali Student Age: 10

Источник

Компонент JavaBean

Компоненты JavaBean – это многократно используемые классы Java, позволяющие разработчикам существенно ускорять процесс разработкии WEB-приложений путем их сборки из программных компонентов. JavaBeans и другие компонентные технологии привели к появлению нового типа программирования – сборки приложений из компонентов, при котором разработчик должен знать только сервисы компонентов; детали реализации компонентов не играют никакой роли.

JavaBean – это одноуровневые объекты, использующиеся для того, чтобы инкапсулировать в одном объекте код, данные или и то и другое. Компонент JavaBean может иметь свойства, методы и события, открытые для удаленного доступа.

Методы getters setters

Компонент JavaBean должен удовлетворять определенным соглашениям о наименовании методов и экспортируемых событий. Одним из важных понятий технологии JavaBeans является внешний интерфейс properties (свойства). Property JavaBean – это методы getters setters, обеспечивающие доступ к информации о внутреннем состоянии компонента JavaBean.

Для обращения к компонентам JavaBeans на странице JSP необходимо использовать следующее описание тега в разделе head :

Идентификатор BeanID определяет имя компонента JavaBean, являющееся уникальным в области видимости, определенной атрибутом scope. По умолчанию принимается область видимости scope=»page», т.е. текущая страница JSP.

Обязательный атрибут класса компонента «class» может быть описан следующим способом:

класса" [type="полное имя суперкласса"]

Свойства JavaBean — jsp:setProperty jsp:getProperty

Свойство JavaBean компонента устанавливается тегом jsp:setProperty. Пример :

Для чтения свойства компонента JavaBean с именем myBean используется тег jsp:getProperty :

В следующем листинге приведен пример компонента JavaBean, содержащего строку mystr, используемую в качестве свойств компонента. В компоненте определены методы getter setter.

package beans; public class myBean < private String mystr; //---------------------------------------------- public String getMystr() < return mystr; >//---------------------------------------------- public void setMystr(String mystr) < this.mystr = mystr; >//---------------------------------------------- >

Синтаксис описания компонента JavaBean на странице JSP приведен на странице Действия actions JSP

Пример использования JavaBean на странице JSP

Рассмотрим простой пример, в котором на странице JSP будет выведено приветствие из JavaBean компонента. Для разработки будет использована IDE Eclipse. На следующем скриншоте представлена структура проекта JavabeanExample, включающего компонент JavaBeanHello.java, страницу index.jsp и дескриптор приложения.

Листинг JavaBean компонента JavaBeanHello.java

Компонент включает свойстве message и методы get/set.

package example; public class JavabeanHello < private String message = "JavaBean компонент приветствует Вас!"; public JavabeanHello() <>public String getMessage() < return message; >public void setMessage(final String message) < this.message = message; >>

Листинг дескриптора приложения web.xml

Дескриптор приложения не включает никакой информации о JavaBean компоненте, используемый на страницах WEB-приложения.

Листинг JSP страницы index.jsp

     %>     $ Сегодня  

На странице определена кодировка UTF-8 и выполняется импорт утилит и классов для работы с датой. Тег определяет JavaBean компонент — класс, область видимости (page) и alias использования на странице. Для вывода на страницу сообщения компонента указывается его alias и свойство «$».

Интерфейс страницы представлен на следующем скриншоте.

Курсивом на страницу выведена строка с текущей датой и временем.

Скачать примеры

Исходные коды проекта JavaBeanExample, рассмотренного в тексте страницы, можно скачать здесь (7 Кб).

Источник

Оцените статью