Составные компоненты в JSF 2.0

Композитные компоненты в JSF 2.0

Начиная с JSF 2.0, очень легко создать повторно используемый компонент, известный какcomposite components. В этом руководстве мы покажем вам, как создать простые составные компоненты (хранящиеся как «register.xhtml»), которые представляют собой форму регистрации пользователя, включающую поля имени и текста электронной почты (h:inputText) и кнопку отправки. (h:commandButton). Кроме того, мы также покажем вам, как его использовать.

Создать составные компоненты

Вот шаги для создания составных компонентов:

1. Составное пространство имен

Создайте файл.xhtml и объявите составное пространство имен.


2. Интерфейс и реализация

Использует составные тегиcomposite:interface,composite:attribute иcomposite:implementation, чтобы определить содержимое составного компонента. Например,



      
            
      

      
            #{cc.attrs.anything}
      

Тегcomposite:interface используется для объявления настраиваемых значений, которые доступны разработчику, который его использует. А тегcomposite:implementation объявляет все разметки XHTML, которые являются содержимым составного компонента, внутри тегаcomposite:implementation вы можете получить доступ к атрибутуcomposite:interface с выражением#{cc.attrs.attributeName}.

3. Папка ресурсов

Поместите составные компоненты (файл «.xhtml») в папку ресурсов JSF, см. Рисунок 1:

Рисунок 1: Структура каталогов в этом примере.

jsf2-composite-component-folder

В этом случае вы помещаете составные компоненты «register.xhtml» в папку с именем «example».

4. Полный пример

Готово, давайте посмотрим полный пример «register.xhtml».

Файл: register.xhtml





    

        
        
        
        

    
        

    

    

    

        

        

            #{cc.attrs.nameLable} :
            

            #{cc.attrs.emailLable} :
            

        

        

    

    

Используйте составные компоненты

Вы только что создали составной компонент «register.xhtml», и теперь мы покажем вам, как его использовать.

1. Путь доступа к составному компоненту

См. Рисунок 1 выше; файл «register.xhtml» находится в папке «example». Вот как вы получаете к нему доступ:


      

http://java.sun.com/jsf/composite/folder-name-in-resources-folder
Имя папки составных компонентов определяется путем доступа к компоненту, например, если вы поместите файл «register.xhtml» в папку с именем «abc», тогда вы должны получить к нему доступ как этот :


      

2. Полный пример

Давайте посмотрим на полный пример, демонстрирующий использование составных компонентов «register.xhtml».

Файл: default.xhtml





    

        

Composite Components in JSF 2.0

Вам разрешается передавать либо жестко запрограммированное значение, либо метод поддержки или свойство в составной компонент через открытые атрибуты, когда форма отправляется, JSF автоматически выполняет всю привязку базового компонента.

P.S Here’s the “user” managed or backing bean, for those who are interested.

package com.example;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

    public String name;
    public String email;

    //getter and setter methods for name and email

    public String registerAction(){
        return "result";
    }
}

Demo

Вот результат.

jsf2-composite-component-example

Скачать исходный код

Скачать -JSF-2-Composite-Components-Example.zip (11 КБ)