EL中参数化方法调用的参数类型

时间:2016-08-01 22:28:19

标签: el

我正在EL中进行方法调用objectMapper.writeValueAsString

<%@ attribute name="actionItems" required="true" rtexprvalue="true" type="java.util.List"%>
<jsp:useBean id="objectMapper"     class="org.codehaus.jackson.map.ObjectMapper" scope="page" />
<jsp:useBean id="actionItemsMap" class="java.util.HashMap" />
<c:set target="${actionItemsMap}" property="actionItems"         value="${objectMapper.writeValueAsString(actionItems)}" />

writeValueAsStringmethod signature中获取一个Object参数。当我传入actionItems ArrayList时,它正在工作。

现在我将ApacheTomcat 7从7.0.52升级到7.0.70,代码被MethodNotFoundException打破:

  

javax.el.MethodNotFoundException:java.lang.NoSuchMethodException:org.codehaus.jackson.map.ObjectMapper.writeValueAsString(java.util.ArrayList)   在javax.el.BeanELResolver.invoke(BeanELResolver.java:422)   在org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:139)

它正在尝试查找参数类型为writeValueAsString的方法ArrayList。它似乎与7.0.53中的this change有关。我该如何更改代码才能使其正常工作?我是否必须使用Object参数调用方法?如果是这样,有没有办法可以将ArrayList转换为EL中的对象,然后调用方法?

1 个答案:

答案 0 :(得分:0)

原来这是我们这方面的问题。支持这些参数化方法调用。