我正在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)}" />
writeValueAsString
在method 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中的对象,然后调用方法?
答案 0 :(得分:0)
原来这是我们这方面的问题。支持这些参数化方法调用。