Projemin bir arama şeklinde PrimeFaces p:autoComplete
widget'ı kullanıyorum. Kullanıcı, kaç tane ve hangi form öğelerini (arama parametrelerini) içerdiğini seçebilir, böylece her biri için completeMethod
'a bir kimlik iletmem gerekir. Nesneyi fasülyeye geçirmek için onfocus=".."
eklemeyi denedim, ancak yalnızca öğe ilk yüklendiğinde etkinleştirilecek.: Otomatik Tamamlama
Sorum: Nasıl completeMethod
için bir öznitelik geçebilir? (Basit) elemanın
XHTML: (basit)
<p:autoComplete value="#{filter.value}" label="dynamic search attribute"
completeMethod="#{myBean.complete}" />
fasulye: Teoride
@Named("myBean")
public class MyController implements Serializable {
public List<String> complete(String query) {
List<String> results = new ArrayList<String>();
// ... code
return results;
}
}
bu mükemmel bir çözüm gibi görünüyor:
<p:autoComplete value="#{filter.value}" label="dynamic search attribute"
completeMethod="#{myBean.complete(filter)}" />
Ve yine bakla:
Eğerpublic List<String> complete(String query) {
FacesContext context = FacesContext.getCurrentInstance();
FilterObject o = (FilterObject) UIComponent.getCurrentComponent(context).getAttributes().get("filter");
// ...
}
Alternatif o #{filter}
EL kapsamında zaten olması sizin durumunuzda göründüğü gibi:
ben hem önerdi sollutions denedik ve her ikisi de mükemmel çalıştı. İkinci yaklaşımı seçtim, bu yüzden özniteliğe ihtiyacım yoktu. Çok teşekkürler! –
Rica ederim. Sizin için de çalışabilecek bir '@ Inject' öneri eklediğimi unutmayın. – BalusC