我正在将我们的 Wicket 1.4 应用程序移植到 Wicket 1.5。现在访客very different .我想知道的是如何在 Wicket 1.5 中处理 CONTINUAL_TRAVERSAL?现有的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;
}
最佳答案
只需将您的方法转换为类似这样的方法就可以了:
@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());
}
}
正如您在链接的文档中看到的那样,遍历现在是通过 IVisit 控制的传递给方法。如果没有停止或不继续深入的方法被调用,遍历将继续。
关于wicket - wicket 1.5 中 IVisitor.CONTINUE TRAVERSAL 的等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950019/