我已经成功实现了AutoPopulatingList。我有一个javascript递增id和背景Spring正在创建我漂亮的列表。
我在删除btw项时遇到了一些问题。我正在使用向导控制器,我试图“返回”并删除几个项目。然后,前进......惊喜!这些物品还在那里!
那么,我怎样才能强制Spring每次创建一个新的AutoPopulatingList?或者我错过了什么?
这是我的工厂清单:
private AutoPopulatingList<Event> events = new AutoPopulatingList<Event>(new EventElementFactory());
public class EventElementFactory implements ElementFactory {
@Override
public Event createElement(int index) throws ElementInstantiationException {
Event e = new Event();
e.setModContr("");
e.setDesc("");
return e;
}
}
我在控制器中使用了这个initBinder(不知道为什么但是没有工作):
binder.setAutoGrowNestedPaths(false);
谢谢!
答案 0 :(得分:1)
最后我解决了这个问题:
在我的jsp中,我添加了一个隐藏的字段
<input name="_clearEventList" type="hidden" value="true" />
并在我的控制器中
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
if(Boolean.valueOf(request.getParameter("_clearEventList"))) {
((MyForm)binder.getTarget()).getEvents().clear();
}
binder.setAutoGrowNestedPaths(false);
}
所以这将从该页面向前(或向后)清除我的列表,并强制Spring重新填充它。 :)