我将我们的Wicket 1.4应用程序移植到Wicket 1.5.游客现在非常不同.我想知道的是如何处理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;
}
Run Code Online (Sandbox Code Playgroud)
只需将您的方法转换为这样的方法,您应该没问题:
@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());
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在链接的文档中所看到的,现在通过传递给方法的IVisit来控制遍历.如果没有调用停止或不停止的方法,则遍历将继续.
| 归档时间: |
|
| 查看次数: |
1004 次 |
| 最近记录: |