08.09.2012

JEE6 Tutorial - Part 5 - Presentation Model (Backing Bean) anlegen

Im fünften Teil des Tutorials wird das Presentation Model (Backing Bean) angelegt. Diese zusätzliche Schicht wird eingeführt, um die Oberfläche klar von der Persistenz-Schicht zu trennen. Die Idee dazu kommt von Martin Fowler.

Als erstes wird Source Packages ausgewählt und zum Anlegen einer neuen Klasse die Tastenkombination ⌘+N verwendet. (oder im Hauptmenü File->New File...). In dem Wizard-Schritt Choose file type wird unter Categories der Ordner Java ausgewählt. Als File Type wird Java Class selektiert und mit Next bestätigt.

Create New Project

Im Wizard-Schritt Name and Location wird unter Class name der Wert UrlManagerPM eingetragen. Als Package wird org.hameister.urlmanager verwendet und mit Finish der Dialog geschlossen.

Create New Project

Anschliessend wird folgender Quellcode in der Klasse UrlManagerPM hinzugefügt:

package org.hameister.urlmanager;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

/**
 *
 * @author Hameister
 */
@Named
@RequestScoped
public class UrlManagerPM {
    
    private UrlManagerEntity entity = new UrlManagerEntity();

    @EJB
    UrlManagerBean bean;
    
    public UrlManagerEntity getEntity() {
        return entity;
    }

    public void setEntity(UrlManagerEntity entity) {
        this.entity = entity;
    }
    
    public void store() {
        System.out.println("Stored");
        bean.addUrl(entity);
    }
}

Als erstes wird eine Instanz UrlManagerEntity erzeugt und ein UrlManagerBean mit der Annotation @EJB erstellt. Für das Data-Binding werden getter und setter für das Entity erstellt. Außerdem wird zum Speichern des Entity eine Funktion store() ergänzt. Diese sagt der Bean, dass ein neues Datenbank-Entity hinzugefügt werden soll.

Hinweis: bean.add(enity) lässt sich noch nicht kompilieren. Im nächsten Teil wird der Fehler behoben.

Im 6. Teil des Tutorials werden die einzelnen Komponenten verbunden, so dass die Anwendung lauffähig ist: Verbinden von JSF, Backing Bean, EJB und Datenbank-Entity