Spring 3 MVC:如何使用逗号分隔的字符串集创建表单

时间:2011-12-09 11:05:25

标签: spring-mvc spring-3

我在春季3时很新,我不知道解决问题的最佳方法。

我有一个实体想法:

public class Idea {
    private Set<Tag> tags;
}

有几个相关的标签。 我想创建一个表单,在其中我可以在一个输入中给出逗号分隔的标记列表(与stackoverflow中的一样)。 我需要一种解析器,它将字符串与这些逗号分开并将每个标记添加到该想法中。 我该如何正确地做到这一点?

我目前的表格是:

<form:form modelAttribute="idea">
    <form:input path="tags" />
</form:form>

输入中当前显示的文字为&#34; []&#34; (必须是HashSet类的toString方法)。

顺便说一句,我使用的是Spring 3.0.5,Hibernate和JSP。

编辑:我可以创建一个专门的课程:

public class IdeaForm {
    String tags;
}

然后创建一个实用程序类,将逗号分隔的标记映射到Set?

谢谢!

1 个答案:

答案 0 :(得分:2)

最后在我的控制器中使用了initBinder工具:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Set.class, new CommaDelimitedStringEditor());
}

并创建了我的自定义编辑器

public class CommaDelimitedStringEditor extends PropertyEditorSupport {

    public void setAsText(String text) {
        Set<Tag> tags = new HashSet<Tag>();
        String[] stringTags = text.split(", ");
        for(int i =0; i < stringTags.length; i++) {
            Tag tag = new Tag();
            tag.setName(stringTags[i]);
            tags.add(tag);
        }
        setValue(tags);
    }

}