gpt4 book ai didi

java - 如何将 View 与模型更改/重新渲染同步

转载 作者:行者123 更新时间:2023-12-02 02:25:51 26 4
gpt4 key购买 nike

我有一个表单,其中包含绑定(bind)到模型对象中的字段的文本字段输入。当用户在该文本字段中输入数据时,它可能会根据计算影响表单中的多个其他字段/组件。我的业务逻辑封装在服务层中。

理论上,我希望它的工作方式是,当用户更新字段时,会对服务器进行 ajax 调用(按键时),其中应用服务的逻辑,并在模型对象上更新所有受影响的字段。一旦模型在服务器上更新,我想将模型对象的当前状态同步到屏幕。

刷新整个屏幕是唯一的方法吗?有没有办法只重新渲染绑定(bind)到模型中已更改字段的组件?另外,如果我刷新屏幕,正在编辑的字段也会更新,有没有办法排除它?

我对这项技术的最佳实践感兴趣。

谢谢

最佳答案

从你的标签中我假设你正在使用 Wicket 口。 Wicket 使用行为来实现此目的。在以下示例中,如果 TextField 的输入发生更改,您将更新两个 DropDownChoices。您只需将这些控件添加到 AjaxRequestTarget 即可。两个 DropDownChoices 的模型都将在前端重新加载和重新渲染。另请确保在要更新的控件上调用 setOutputMarkupId(true)。

    TextField<String> textField = new TextField<String>("input");
Component dropDownA = new DropDownChoice<>("dropA").setOutputMarkupId(true);
Component dropDownB = new DropDownChoice<>("dropB").setOutputMarkupId(true);

textField.add(new AjaxFormComponentUpdatingBehavior("change") {
private static final long serialVersionUID = 1478280524536023725L;

@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(dropDownA);
target.add(dropDownB);
}
});

关于java - 如何将 View 与模型更改/重新渲染同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47782715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com