Jsf 2 从facelets 1.1迁移到faclets 2.0-FaceletViewHandler

Jsf 2 从facelets 1.1迁移到faclets 2.0-FaceletViewHandler,jsf-2,facelets,Jsf 2,Facelets,我读了下面的帖子,非常有帮助 但我在迁移过程中遇到了一个问题,因为我有一个从FaceletViewHandler扩展而来的自定义视图处理程序-这不是faclets 2的一部分 我正在JBoss 4.2.2上迁移以下内容: -JSF1.2到JSF2.0 我还想迁移faclets,这是我上面描述的一个问题 在我的应用程序中,我也在使用Tomahawk—这种迁移有问题吗 提前谢谢 Elico。好的,您需要将FaceletViewHandler替换为 下面是FaceletViewHandler的基本实

我读了下面的帖子,非常有帮助

但我在迁移过程中遇到了一个问题,因为我有一个从FaceletViewHandler扩展而来的自定义视图处理程序-这不是faclets 2的一部分

我正在JBoss 4.2.2上迁移以下内容: -JSF1.2到JSF2.0

我还想迁移faclets,这是我上面描述的一个问题

在我的应用程序中,我也在使用Tomahawk—这种迁移有问题吗

提前谢谢


Elico。

好的,您需要将
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;
    }

    // ...
}
我已经相应地更新了关于迁移问题的答案。

要激活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>

pkg.MyViewHandler