ApacheWicket-更新所有共享特定模型的组件的最佳方式
创始人
2024-09-06 15:30:25
0

我们可以使用IModelChangeListenervisitChildren()方法来实现这一目标。当一个特定的IModel发生变化时,IModelChangeListener可以触发,并且可以使用visitChildren()方法遍历所有子组件并更新它们的模型值。

以下是示例代码:

首先,我们在构造函数内添加IModelChangeListener

public MyPanel(String id, IModel model) {
    super(id, model);
    model.addModelChangedListener(new IModelChangeListener() {
        @Override
        public void onModelChanged(IModel model) {
            visitChildren(MyPanel.class, new IVisitor() {
                @Override
                public void component(MyPanel panel, IVisit visit) {
                    panel.setModelObject(model.getObject());
                    visit.dontGoDeeper();
                }
            });
        }
    });
}

然后,在MyPanel中,我们创建一个TextField,该TextField使用与MyPanel相同的模型:

public class MyPanel extends Panel {

    private TextField textField;

    public MyPanel(String id, IModel model) {
        super(id, model);
      
        textField = new TextField<>("textField", model);
        add(textField);
    }
}

这样,当MyPanel的模型发生变化时,IModelChangeListener将触发并更新所有MyPanel的模型。

请注意,此解决方案也可以扩展到递归更新所有子组件的模型。

相关内容

热门资讯

热点推荐!安卓闲逸辅助,wep... 热点推荐!安卓闲逸辅助,wepoker有辅助插件吗,科技教程(确实有挂);一、安卓闲逸辅助有挂的是的...
实测必看!盛世2私人辅助,79... 实测必看!盛世2私人辅助,798大菠萝辅助(好像是真的有挂)运盛世2私人辅助辅助工具,进入游戏界面。...
揭秘真相!江西微乐南昌有辅助,... 揭秘真相!江西微乐南昌有辅助,德州透视竞技联盟,解密教程(有挂猫腻);1.江西微乐南昌有辅助 ai辅...
交流学习经验!陕麻圈辅助器透视... 交流学习经验!陕麻圈辅助器透视开挂,福麻圈辅助(其实是有挂)陕麻圈辅助器透视开挂辅助器是一种具有地方...
玩家必看科普!白银胡乐亲友房,... 您好,白银胡乐亲友房这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
玩家必看科普!多乐跑辅助,情怀... 玩家必看科普!多乐跑辅助,情怀游戏辅助器(好像真的有挂)1、玩家必看科普!多乐跑辅助,情怀游戏辅助器...
重大通报!边锋干瞪眼辅助,we... 您好:边锋干瞪眼辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
科技新动态!闲来辅助神器下载,... 科技新动态!闲来辅助神器下载,jj斗地主麻将外卦挂(切实是真的有挂)1、点击下载安装,jj斗地主麻将...
我来教大家!新道游房间,aap... 我来教大家!新道游房间,aapoker脚本怎么用,AI教程(证实有挂);我来教大家!新道游房间,aa...
每日必看!海豹3+1辅助器,杭... 每日必看!海豹3+1辅助器,杭州都莱app有辅助吗(果然真的是有挂)1、不需要AI权限,帮助你快速的...