我在项目中使用p:autoComplete
multiSelection = true
和forceSelection = false
。我用它来为我的对象添加“标签”。
这确实非常好,非常有用。
现在我有了一个问题,我希望有可能解决它。
实施例
存储在数据库中的标签:test,example
如果我输入测试或示例,自动填充会提出建议。
现在我想输入:
primefaces
在db中找不到。现在我想将此值从我的自动完成功能推送到数据库中。
我该怎么做?
此致 LStrike
答案 0 :(得分:0)
好的,我制定了一个解决方案,对我来说很好。
Primefaces自动完成:
<p:autoComplete id="mulitAutoSchlagWorte"
value="#{entityHandler.entity.tags}"
completeMethod="#{entityListHandler.completeAreaWithCreation}"
var="_tag"
itemLabel="#{_tag.value}"
itemValue="#{_tag}"
multiple="true"
size="300"
converter="#{entityConverter}">
</p:autoComplete>
列表处理程序,它还会创建一个新标记:
public List<Tag> completeAreaWithCreation(String query) {
List<Tag> returnList = this.entityManager.createNamedQuery(Tag.NAMED_QUERY_GET_TAGS_BY_LIKE, Tag.class).setParameter("tag", query.toLowerCase().trim() + "%").getResultList();
if(returnList.size() == 0){
if(query.endsWith(" ")){
entityHandler.create();
entityHandler.getEntity().value(query.trim());
entityHandler.save();
}
returnList = completeAreaWithCreation(query.trim());
}
return returnList;
}