我的facelet中有类似的代码......
<c:foreach items=#{myBean.listOfA} var="a">
<c:foreach items=#{myBean.listOfB} var="b">
<c:set var="aName" value="#{a.name}">
<c:set var="component" value="#{b.associatedComponent(aName)}">//this wont resolve
//do stuff with component
</c:foreach>
</c:foreach>
myBean 是一个会话范围的 bean。A 和 B 类都在 bean 内的列表中维护,但只是模型对象而不是托管 bean。
话虽如此,我假设的方法 b.associatedComponent(a) 应该解析为我已经检查过很多次的 b.getAssociatedComponent(A a) 。所有方法都是公开的。我该怎么做才能使 EL 可以访问该方法?
无论我尝试什么,我都会在相关组件上得到一个 PropertyNotFoundException。
PS我也试过像这样将方法移动到bean...
<c:set var="component" value="#{myBean.associatedComponent(b, aName)}">
这也不起作用并引发相同的 PropertyNotFoundException。