我正在使用JSF 2.0,PF M3和GF 3.1。
我的电子邮件表单中有自动完成控件。只要我从自动完成控件提供的下拉建议中进行选择,它就会替换控件中的旧值。如何使其工作,以便每次进行新选择时,所选文本将附加到先前选定的文本。
我的观点文件是:
<p:autoComplete id="emailForm"
value="#{mail.emailTo}"
required="true"
completeMethod="#{myController.complete}"
var="p"
itemLabel="#{p.lastName} <#{p.email}>"
itemValue="#{p}"
size="60">
<p:ajax event="itemSelect" listener="#{myController.handleSelect}"/>
</p:autoComplete>
感谢所有帮助。
由于
答案 0 :(得分:0)
selected text is appended to the previously selected text
到底是什么意思?
如果我理解正确,这不是一个好习惯:意味着您的complete method
(myController.complete
)执行错误。你可以修改你的代码......
无论如何,您可以将输入的键(文本)与选择的键作为建议附加,方法是将值mail.emailTo
附加到DB返回的结果,由myController.complete
方法处理。
更新:
首先,您应该考虑升级到RC1,然后阅读手册(http://www.primefaces.org/documentation.html),以便了解simple autocomplete和autocomplete with pojo support之间的差异;
在使用自己的对象(而不仅仅是列表)时,您将使用pojo支持,同样在相同的情况下使用itemLabel和itemValue。使用pojo时,您会收到转换错误,因为您必须实现自己的转换器。如果所有这些事情对你来说都很陌生,那么使用简单的自动完成功能就可以了!
考虑阅读我提供给您的所有链接,以便更好地理解Primefaces组件(特别是自动完成)