假设我在检票口中有以下代码
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”。我注意到后参数在处理行为后被清除,所以我的测试的第三行也为我提供了一个空的参数列表。
所以现在我的问题是:在非表单提交请求之间“安全”请求参数的首选方式是什么?
非常感谢你的回答