我在春季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?
谢谢!
答案 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);
}
}