0

我已经成功实现了一个 AutoPopulatingList。我有一个增加 id 的 javascript,在后台 Spring 正在创建我的漂亮列表。

顺便说一句,我在删除项目时遇到了一些问题。我正在使用向导控制器,我试图“返回”并删除几个项目。然后,继续前进……惊喜!物品还在!

那么,我怎样才能强制 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);

谢谢!

4

1 回答 1

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 重新填充它。:)

于 2013-02-13T17:18:48.000 回答