我正在将JSF 2.2与PrimeFaces 5.3一起使用,并且正在尝试使用p:autoComplete

我认为我正在执行某种语法错误,但找不到它

我有这页

<h:selectOneMenu id="countryDropdown" value="#{myController.selectedCountryId}">
   <f:selectItems value="#{myController.countries}" var="co" itemValue="#{co.id}" itemLabel="#{msg[co.name]}"/>
</h:selectOneMenu>

<p:autoComplete
   dropdown="true"
   value="#{myController.selectedAutocompleteId}"
   completeMethod="#{myController.callMyAutocompleteMethod}">
      <f:attribute name="selectedCountryId"  value="#{carCountryDropdown}" />
</p:autoComplete>


为了执行自动完成任务,我还需要“ countryDropdown”的值。
为了在自动完成方法中检索“ countryDropdown”选择项的值,我需要使用哪种语法?

在自动补全方法中,我可以使用以下代码

UIComponent.getCurrentComponent(context).getAttributes().get("selectedCountryId");


但是我总是空的

你能帮助我吗?

最佳答案

您可以使用ajax,支持更改事件:

< p:selectOneMenu ..>
    < p:ajax event="change" listener="#{myController.subjectSelectionChanged}" />
    <!--...-->
< /p:selectOneMenu>


触发侦听器subjectSelectionChanged,您可以在其中返回carCountryDropdown中“ countryDropdown”的值

关于jsf - p:autoComplete-通过更多参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35760414/

10-11 00:52