2011-07-25 34 views
7

我看了下面的帖子這是非常有益的 Migrating from JSF 1.2 to JSF 2.0由小面1.1移植到faclets 2.0 - FaceletViewHandler

,但我有遷移問題,因爲我有一個從FaceletViewHandler延伸的自定義視圖處理程序 - 這不是faclets 2.

我遷移在JBoss的部分4.2.2如下: - JSF 1.2到JSF 2.0

我還希望遷移的faclets - 我具有上述的問題。

在我的申請,我也是用戰斧 - 有這個遷移什麼問題?

在此先感謝。

Elico。

回答

7

右鍵,你需要ViewHandlerWrapper更換FaceletViewHandler

所以以下基本FaceletViewHandler實現:

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

public class MyViewHandler extends FaceletViewHandler { 

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

    // ... 
} 

需要進行如下更新:

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; 
    } 

    // ... 
} 

我相應地更新我的遷移問題的答案。

0

要激活MyViewHandler例如對於JEE7,WEB-INF/faces-config.xml中應等來定義:

<?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>