Компонент JavaBean

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

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

Методы getters setters

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

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

<jsp:useBean id="BeanID" [scope="page | request | session | application"] class="BeanClass" />

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

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

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

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

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

 <jsp:setProperty name="myBean" property="Имя свойства" value="Строка или выражение JSP" />

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

 <jsp:getProperty name="myBean" property="Имя свойства" />

В следующем листинге приведен пример компонента 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

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
  <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
         "http://www.w3.org/TR/html4/loose.dtd">

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*, java.text.*" %>

<jsp:useBean id="hello" class="example.JavabeanHello" scope="page" />

<%! 
String getFormattedDate() 
{ 
    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); 
    return sdf.format(new Date()); 
} 
%>
<html>
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>JavaBean с JSP!</title>
  </head>
  <body>
       <h2>${hello.message}</h2>
       <i>Сегодня <%= getFormattedDate() %></i>
  </body>
</html>

На странице определена кодировка UTF-8 и выполняется импорт утилит и классов для работы с датой. Тег <jsp:useBean> определяет JavaBean компонент - класс, область видимости (page) и alias использования на странице. Для вывода на страницу сообщения компонента указывается его alias и свойство "${hello.message}".

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

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

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

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

  Рейтинг@Mail.ru