我已经阅读了以下帖子,这对Migrating from JSF 1.2 to JSF 2.0非常有帮助
但是我遇到了迁移的问题,因为我有一个从FaceletViewHandler扩展的自定义视图处理程序 - 这不是faclets 2的一部分。
我正在迁移JBoss 4.2.2以下内容: - JSF 1.2到JSF 2.0
我也想迁移这些小子 - 我有上述问题。
在我的应用程序中,我也在使用Tomahawk - 这次迁移有什么问题吗?
提前致谢。
ELICO。
是的,你需要用FaceletViewHandler
替换ViewHandlerWrapper
。
所以以下基本的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>