rich:建议清单的自动完成'标签'和'价值'?

时间:2013-12-10 14:55:31

标签: java jsf web-applications richfaces frontend

我的目标是那个 查看建议列表(在我的控制器中按对象列表绑定)
使用rich:autocomplete组件

建议列表项目(对象)被视为userFirstNameuserSecondName
从列表中选择一个项目时 建议框的The label必须为 userFirstName

此选定项目的The value将传递给控制器​​,需要 userId

我的问题是 当我使用这个片段

<rich:autocomplete                      
    autocompleteList="#{myController.myList}"
    var="var" 
    fetchValue="#{var.userFirstName}" 
    value="#{myController.id}"
    autofill="true" 
    layout="table" >

    <rich:column>
        #{var.userFirstName} 
    </rich:column>  
    <rich:column>
        #{var.userSecondName} 
    </rich:column>  

</rich:autocomplete>

我的控制器传递的值是 userFirstName 而非 userId
问题是fetchValue property的值是两者(the labelthe value) 那么我如何推迟所选项目的the labelthe value呢? 然后我将能够在建议框中查看某些内容并将其他内容传递给我的控制器

1 个答案:

答案 0 :(得分:3)

这实际上是不可能的,我很害怕。

有关示例,请参阅this post。要点是,由于<rich:autocomplete>基于HTML的普通<input type=text>,因此您只能向JSF提交在文本框中输入的内容(您使用fetchValue定义的值)。 RF-3.3自动完成中出现的隐藏状态消失了。

人们,包括我自己,一直在制定自定义解决方案,包括挂钩rich:autocomplete#onselectitem客户端事件并将id写入<h:inputHidden />字段或集成客户端建议替代方案,如{{3 }}

我听说RF人员正在改进RF-5中的搜索,现在正在形成。