假设我在wicket中有以下代码
TextField foo = ...;
TextField bar = ...;
bar.add(new AjaxEventBehavior("change") {
@Override
protected void onEvent(AjaxRequestTarget target) {
// do something
}
});
让我们进一步假设foo和bar是具有CompoundPropertyModel作为模型的表单“dummyForm”的成员。 “foo”-field的初始值是“Max”
现在我用Wicket-Tester写一个简单的测试:
formtester.setValue("foo", "Petra");
wickettester.executeBehavior(...); // execute behaviour on field bar
wickettester.getRequest().getPostParameters();
wickettester.getComponentFromLastRenderedPage("foo").getDefaultModelObjectAsString();
当我执行此测试时,第一行在模拟请求中放置一个post-parameter(“foo”,“Petra”)。由于第二个语句中的行为不是formubmit-behavior,因此CompoundPropertyModel不会更新。所以在第4行中,foo的模型值仍然是“Max”而不是“Petra”。我注意到后处理参数在处理完行为后被清除了,所以我测试的第三行也为我提供了一个空的参数列表。
现在我的问题是:在非表单提交请求之间“安全”请求参数的首选方法是什么?
非常感谢您的回答
答案 0 :(得分:0)
我担心你必须自己转移它们。
它们位于#getLastRequest()
而不是#getRequest()
。