我有一个简单的问题,但我无法解决它.. 我正在使用 Wicket 口。 在网络应用程序上我有一个按钮(加载)。当我单击该按钮时,一些数据会从 Web 加载,保存在数据库中,然后加载到 Web 应用程序 (StartPage.html)。我有另一个按钮用于更正数据(编辑),当我单击它时,EditPage.html 会加载。所以我只有 2 页。对 EditPage.html 进行一些更正后,我单击保存按钮,新数据会更新到数据库中,然后应加载到 Web 应用程序(StartPage.html)中。
这很简单,但在我单击“加载”按钮之前,应该是干净的。因此,如果我在“加载”单击之前清理表格,那么每次单击“编辑”按钮时,它都会被清理。我尝试制作一些标志,或将参数发送到 StartPage,但它看起来像一个圆圈。
StartPage 每次都应该加载数据,但第一次会清理表格,但后来却没有。问题在于以某种方式发送参数..
我希望它很清楚,有什么建议吗?
更新:
编辑页面
public class EditPage extends WebPage {
public EditPage(final PageParameters parameters) {
Form<?> form = new Form<Void>("form") {
@Override
protected void onSubmit() {
// if button "save" clicked
PageParameters params = new PageParameters();
params.add("flag", "true");
setResponsePage(StartPage.class, params);
}
};
}
}
起始页
public class StartPage extends WebPage {
public StartPage(final PageParameters parameters) {
String flag = parameters.getString("flag")
if (flag=="false")
// Delete from DB
Form<?> form = new Form<Void>("form") {
@Override
protected void onSubmit() {
// Load from web to DB
}
};
// Load from DB
}
}
最佳答案
我终于做到了这样,但据我所知,这是“糟糕”的解决方案
编辑页面
public class EditPage extends WebPage {
public EditPage(final PageParameters parameters) {
Form<?> form = new Form<Void>("form") {
@Override
protected void onSubmit() {
// if button "save" clicked
PageParameters params = new PageParameters();
params.add("flag", "true");
setResponsePage(StartPage.class, params);
}
};
}
}
起始页
public class StartPage extends WebPage {
public StartPage(final PageParameters parameters) {
Form<?> form = new Form<Void>("form") {
@Override
protected void onSubmit() {
// Delete from DB
// Load from web to DB
// Load from DB
}
};
if (parameters.getString("flag")!=null)
// Load from DB
}
}
关于java - 从Java中的另一个类获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12806638/