【发布时间】:2016-06-16 02:01:59
【问题描述】:
我将 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");
但我总是为空。
你能帮帮我吗?
【问题讨论】:
-
为什么不直接在'countryDropDown'中使用ajax来设置它的值时选择和使用自动补全方法中的bean值?
-
因为我会执行太多无用的请求
-
多少?一?二?好的……
-
不知道有多少。而且我对知道应用程序将执行多少无用请求不感兴趣。最重要的是我们可以改进这种方法。而且我认为尝试(几乎尝试)尽可能使用最好的方法很重要
-
这里是恶魔的拥护者(并且强烈反对过早优化)所以每次自动完成触发并处理它时发送它对您的服务器的压力会大大减少吗?
标签: jsf primefaces autocomplete