2011-07-25 8 views
7

Czytałem następujący wpis, który był bardzo pomocny Migrating from JSF 1.2 to JSF 2.0Migracja z Facelets 1.1 do faclets 2.0 - FaceletViewHandler

ale mam problem z migracją, jak mam niestandardowej obsługi widok, który rozciąga się od FaceletViewHandler - to nie jest częścią faclets 2.

jestem migracji na JBoss 4.2.2 następujące: - JSF 1.2 JSF 2.0

chcę również migrację faclets - co mam problem opisany powyżej.

W mojej aplikacji używam również programu Tomahawk - czy jest jakiś problem z tą migracją?

Z góry dziękuję.

Elico.

Odpowiedz

7

Po prawej, należy wymienić FaceletViewHandler przez ViewHandlerWrapper.

Więc następujące podstawowe FaceletViewHandler realizacja:

import javax.faces.application.ViewHandler; 
import com.sun.facelets.FaceletViewHandler; 

public class MyViewHandler extends FaceletViewHandler { 

    public MyViewHandler(ViewHandler parent) { 
     super(parent); 
    } 

    // ... 
} 

musi być aktualizowany następująco:

import javax.faces.application.ViewHandler; 
import javax.faces.application.ViewHandlerWrapper; 

public class MyViewHandler extends ViewHandlerWrapper { 

    private ViewHandler wrapped; 

    public MyViewHandler(ViewHandler wrapped) { 
     this.wrapped = wrapped; 
    } 

    @Override 
    public ViewHandler getWrapped() { 
     return wrapped; 
    } 

    // ... 
} 

zaktualizowałem moją odpowiedź na pytanie migracji odpowiednio.

0

Aby aktywować MyViewHandler np. w przypadku JEE7, WEB-INF/faces-config.xml należy zdefiniować następująco:

<?xml version="1.0"?> 
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
      http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> 
    <application> 
     <view-handler>pkg.MyViewHandler</view-handler> 
    </application> 
</faces-config>