如果方法存在具有不同签名的方法,则EL的方法调用失败 - JSF2

时间:2013-04-19 04:18:30

标签: java-ee jsf-2 glassfish el

我有一个包含几个共享相同名称但具有不同签名的方法的backing-bean,例如:

public void voteUp( Member member, ObjectA object ) { ... }
public void voteUp( Member member, ObjectB object ) { ... }

在示例中,ObjectAObjectB类型不共享任何共同点。

在我的Facelet中,我用这种方式调用动作:

<h:form>
    <h:commandButton action="#{backingBean.voteUp(membre, objectA)}" ... />
</h:form>
...
<h:form>
    <h:commandButton action="#{backingBean.voteUp(membre, objectB)}" ... />
</h:form>

但似乎有时候(不是随机的,但可能取决于我的backing-bean中首先定义了哪个签名),其中一个EL调用的方法是错误的,我得到其中一个例外:< / p>

  

serverError:class javax.faces.el.E​​valuationException无法转换   类com.test.ObjectA到类的com.test.ObjectA@116c1800   com.test.ObjectB

由于我给EL我的类型为ObjectA的对象,为什么它还是用ObjectB签名调用方法?我在这里忘记了Java基础知识,还是我的EL解释器搞砸了?

我使用GlassFish 3.1.2。

[编辑]只是为了清楚我的代码中其他一切都没问题,当我重命名这个例子中的两个方法之一时,一切正常。

0 个答案:

没有答案