0

假设我在检票口中有以下代码

TextField foo = ...;
TextField bar = ...;
bar.add(new AjaxEventBehavior("change") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            // do something
        }

    });

让我们进一步假设 foo 和 bar 是“dummyForm”表单的成员,该表单具有 CompoundPropertyModel 作为模型。“foo”字段的初始值为“Max”

现在我用 Wicket-Tester 编写一个简单的测试:

formtester.setValue("foo", "Petra");
wickettester.executeBehavior(...); // execute behaviour on field bar
wickettester.getRequest().getPostParameters();
wickettester.getComponentFromLastRenderedPage("foo").getDefaultModelObjectAsString();

当我执行这个测试时,第一行在模拟请求中放置了一个后参数(“foo”,“Petra”)。由于第二个语句中的行为不是表单提交行为,因此 CompoundPropertyModel 不会更新。所以在第 4 行中,foo 的模型值仍然是“Max”而不是“Petra”。我注意到后参数在处理行为后被清除,所以我的测试的第三行也为我提供了一个空的参数列表。

所以现在我的问题是:在非表单提交请求之间“安全”请求参数的首选方式是什么?

非常感谢你的回答

4

1 回答 1

0

恐怕您将不得不自己转移它们。它们可用于#getLastRequest()代替#getRequest().

于 2015-03-03T16:00:54.463 回答