wicket 1.5中的IVisitor.CONTINUE遍历等价于什么

wicket 1.5中的IVisitor.CONTINUE遍历等价于什么,wicket,porting,Wicket,Porting,我正在将我们的Wicket 1.4应用程序移植到Wicket 1.5。游客们现在都到齐了。我想知道的是如何处理Wicket 1.5中的连续_遍历?现有的1.4代码如下: public class MyFormVisitor implements IVisitor<Component, Object>, Serializable { private static final long serialVersionUID = 7271477325583441433L;

我正在将我们的Wicket 1.4应用程序移植到Wicket 1.5。游客们现在都到齐了。我想知道的是如何处理Wicket 1.5中的连续_遍历?现有的1.4代码如下:

 public class MyFormVisitor implements IVisitor<Component, Object>, Serializable {

    private static final long serialVersionUID = 7271477325583441433L;
    private Set<Component> visited = new HashSet<Component>();

    @Override
    public Object component(Component c) {
        if (!visited.contains(c)) {
            visited.add(c);

            c.add(new MandatoryBehavior());
            c.add(new ErrorHighlightBehavior());
        }
        return IVisitor.CONTINUE_TRAVERSAL;
   }
公共类MyFormVisitor实现IVisitor,可序列化{
私有静态最终长serialVersionUID=7271477325583441433L;
访问的私有集=新HashSet();
@凌驾
公共对象组件(组件c){
如果(!visted.contains(c)){
添加(c);
c、 添加(新的MandatoryBehavior());
c、 添加(新的ErrorHighlightBehavior());
}
返回IVisitor.CONTINUE\u遍历;
}

只要将您的方法转换为类似的方式,您就可以了:

@Override
public void component(final Component c, final IVisit<Void> visit) {
    if (!visited.contains(c)) {
        visited.add(c);

        c.add(new MandatoryBehavior());
        c.add(new ErrorHighlightBehavior());
    }
}
@覆盖
公共空间组件(最终组件c、最终IVisit访问){
如果(!visted.contains(c)){
添加(c);
c、 添加(新的MandatoryBehavior());
c、 添加(新的ErrorHighlightBehavior());
}
}

正如您在链接的文档中所看到的,遍历现在通过传递给方法进行控制。如果没有调用任何停止或不深入的方法,遍历将继续进行。

谢谢DerMiggel。这是我的想法,但我在文档中找不到任何验证。您已经为我这样做了,再次感谢。