gpt4 book ai didi

java - 刷新后 Wicket 口形式清晰选择

转载 作者:行者123 更新时间:2023-12-01 19:53:01 30 4
gpt4 key购买 nike

我目前在应用程序中使用三种不同的表单:RadioChoice、DateField 和 DropDownChoice,其中页面根据用户从此表单中选择的内容进行 react 。这里的问题是,当我提交使用 DateField 和 DropDownChoice 的表单时,它会刷新页面,并且会记住 RadioChoice 中的选择,但会显示默认选择。所以我的问题是,是否可以在刷新后清除这些值并将其设置回默认值,或者使 DateField 和 DropDownChoice 的提交不刷新页面?

    //RADIO CHOICE
RadioChoice<String> radioChoice = new RadioChoice<String>("radio", new PropertyModel<String>(this, "selectedRadio"),this.radioChoiceList);
radioChoice.add(new AjaxFormChoiceComponentUpdatingBehavior()
{
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void onUpdate(AjaxRequestTarget target)
{
target.appendJavaScript(changeBaseLayerJS(Page.this.currentMap, Page.this.selectedRadio));
Page.this.currentMap = Page.this.selectedRadio;
}
});
Form<?> radioForm = new Form<Void>("radioForm");
add(radioForm);
radioForm.add(radioChoice);


//DATEFIELD AND DROPDOWNCHOICE
DateField fromDateField = new DateField("fromDateField", new PropertyModel<Date>(
this, "fromDate"));
DateField toDateField = new DateField("toDateField", new PropertyModel<Date>(
this, "toDate"));
DropDownChoice<String> idvNameMenu = new DropDownChoice<String>("idvNameMenu", new PropertyModel<String>(this, "idvTrackName"), individualChoiceList);
Form<?> trackingForm = new Form<Void>("trackingForm"){
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void onSubmit()
{
//do stuff
}
};

最佳答案

普通(非 Ajax)表单提交会导致整页重新绘制。 Ajax 表单提交将仅重绘您放入 AjaxRequestTarget 中的组件。

您可以使用 form.add(new AjaxFormSubmittingBehavior() {...}) 通过 Ajax 来完成此操作。

或者您可以在 onSubmit 中对对象进行归零:

@Override
protected void onSubmit()
{
// do stuff
// save in database
fromDate = null; // or = new Date();
toDate = null;
idvTrackName = "some good default value";
}

关于java - 刷新后 Wicket 口形式清晰选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50674920/

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