从Java中的另一个类获取参数

时间:2012-10-09 19:00:27

标签: java wicket

我有一个简单的问题,但我无法解决它.. 我正在使用检票口。 在Web应用程序上,我有一个按钮(加载)。当我单击该按钮时,一些数据从Web加载,保存在DataBase中,然后加载到Web应用程序(StartPage.html)上。我有另一个按钮来修正数据(编辑),当我点击它时,EditPage.html加载。所以我只有2页。在对EditPage.html进行一些更正之后,我单击了数据库中的保存按钮和新数据更新,然后应该在Web应用程序(StartPage.html)中加载。

这很简单,但在我点击“加载”按钮之前,应该是干净的。因此,如果我在“加载”之前清理表格 - 每次单击“编辑”按钮时都会清除它。我试图制作一些标志,或者将参数发送到StartPage,但它看起来像一个圆圈。

每次加载数据时都应该使用StartPage,但是第一次清理表但不是。问题是以某种方式发送参数..

我希望很清楚,有什么建议吗?

更新

EditPage

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
    }
}

2 个答案:

答案 0 :(得分:1)

我终于做到了这一点,但我可以看到这是“坏”的解决方案

EditPage

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
    }
}

答案 1 :(得分:1)

您还可以执行以下操作:

class StartPage {
    boolean flag;

    StartPage(boolean flag) {
        this.flag = flag;
    }
}

// in EditPage
void onSubmit() {
    setResponsePage(new StartPage(true));
}

(省略了您已有的代码。)

这将重定向到可收藏的网址。 (这可能是你想要的。)this SO answer概述了它的确切内容。