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

Argument type of parameterized method call in 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) at javax.el.BeanELResolver.invoke(BeanELResolver.java:422) at org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:139)

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

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