JSF 2:访问组件的值绑定的对象

时间:2012-12-14 14:08:19

标签: java jsf jsf-2

我有一个简单的场景,这个例子来自PrimeFaces,但我想它适用于我将以类似方式使用的每个标签:

<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})的引用,而不是值本身。

这到底在哪里?

1 个答案:

答案 0 :(得分: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();
    // ...
}