我当时objectMapper.writeValueAsString
在EL中进行这样的方法调用。
<%@ 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
在方法签名中接受一个Object参数。这是工作,当我通过actionItems
这是一个ArrayList
。
现在,我将ApacheTomcat 7从7.0.52升级到7.0.70,并且代码已被破坏MethodNotFoundException
:
javax.el.MethodNotFoundException:java.lang.NoSuchMethodException:org.apache处javax.el.BeanELResolver.invoke(BeanELResolver.java:422)上的org.codehaus.jackson.map.ObjectMapper.writeValueAsString(java.util.ArrayList)。 jasper.el.JasperELResolver.invoke(JasperELResolver.java:139)
它正在尝试查找writeValueAsString
具有参数类型的方法ArrayList
。似乎与7.0.53中的此更改有关。我应该如何更改代码才能使其正常工作?我是否必须使用Object自变量进行方法调用?如果是这样,有没有办法我可以将其ArrayList
强制转换为EL中的Object然后进行方法调用?
原来这是我们这方面的问题。支持这些参数化的方法调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句