假设我在wicket中有以下代码
TextField foo = ...;
TextField bar = ...;
bar.add(new AjaxEventBehavior("change") {
@Override
protected void onEvent(AjaxRequestTarget target) {
// do something
}
});让我们进一步假设foo和bar是一个表单"dummyForm“的成员,该表单有一个CompoundPropertyModel作为模型。"foo"-field的初始值是"Max“
现在我用Wicket-Tester编写一个简单的测试:
formtester.setValue("foo", "Petra");
wickettester.executeBehavior(...); // execute behaviour on field bar
wickettester.getRequest().getPostParameters();
wickettester.getComponentFromLastRenderedPage("foo").getDefaultModelObjectAsString();当我执行这个测试时,第一行在mock-request中放了一个post参数("foo","Petra")。由于第二个语句中的行为不是formsubmit-behaviour,因此不更新CompoundPropertyModel。因此,在第4行,foo的model-value仍然是"Max“,而不是"Petra”。我注意到post参数在处理完行为后被清除了,所以我的测试的第三行也提供了一个空的参数列表。
所以现在我的问题是:在非表单提交请求之间“安全”的请求参数的首选方式是什么?
非常感谢你的回答
发布于 2015-03-04 00:00:54
恐怕你得自己把它们转过来。它们在#getLastRequest()而不是#getRequest()中可用。
https://stackoverflow.com/questions/28828874
复制相似问题