首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PropertyNotFoundException EL表达式未解析?

PropertyNotFoundException EL表达式未解析?
EN

Stack Overflow用户
提问于 2013-05-02 01:02:16
回答 1查看 137关注 0票数 0

我在我的facelet中有类似的代码...

代码语言:javascript
复制
<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可以访问该方法,我可以做些什么?

无论我怎么尝试,我都会在associatedComponent上得到一个PropertyNotFoundException。

另外,我还尝试将方法移动到bean中,如下所示。

代码语言:javascript
复制
<c:set var="component" value="#{myBean.associatedComponent(b, aName)}">

这也不起作用,并抛出相同的PropertyNotFoundException。

EN

回答 1

Stack Overflow用户

发布于 2013-05-02 01:52:12

这将不起作用,因为c:set标记需要value属性的ValueExpression。这意味着您只能使用属性,而不能使用方法。

如果你使用像这里的#{b.associatedComponent(aName)}这样的参数,那么你得到的是方法调用,而不是属性调用。但是,这是一个有效的MethodExpression,可以在命令链接的action属性等位置使用。有关这方面的更多详细信息,请参阅API documentationspec

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16322783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档