我有一个简单的场景,这个例子来自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})的引用,而不是值本身。
这到底在哪里?
答案 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();
// ...
}