2012-12-14 43 views
0

我有简单的场景的对象,这个例子来自PrimeFaces,但我想它适用于所有的标签我会以类似的方式使用:JSF 2:访问组件的值被绑定到

<p:autoComplete value="#{address.country}" id="#{layoutId}_country" 
    completeMethod="#{addressBean.completeCountry}" var="country" 
    itemLabel="#{country.name}" itemValue="#{country}" 
    converter="#{countryConverter}"> 
</p:autoComplete> 

在一个bean的方法(例如addressBean.completeCounty)我可以访问一个AutoComplete对象。我想得到的是它的值(#{address.country})的引用,而不是值本身。

这是绑定在哪里?

回答

2

我想要的是它的值(#{address.country})的引用,而不是值本身。

这个问题有点模糊(很可能语言不通),但如果我理解正确的话,你想获得#{address.country}因为某种原因表达式字符串。你可以通过UIComponent#getValueExpression()然后ValueExpression#getExpressionString()得到它。

public List<Country> completeCountry(String query) { 
    UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()); 
    String valueEL = component.getValueExpression("value").getExpressionString(); 
    // ... 
} 
+0

我写了一个答案,并删除它,因为我误解了被问到的内容。 –

+0

@maple,是的,我看到了。我真的不明白这个问题是否有其他意义。如果OP想要获得当前选定的值,他只会直接访问该属性,这太明显了(并且本来就是“该值本身”)。 – BalusC

+0

是的,它含糊不清,但以这种方式问这已经是一个挑战了:)所以我想实际得到国家的地址对象。 –