이렇게 EL에서는 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
는 method signature의 개체 매개 변수를 사용합니다. 내가 actionItems
(ArrayList
)을 통과 할 때 작동했습니다.
MethodNotFoundException
로 분류됩니다
javax.el.MethodNotFoundException : java.lang.NoSuchMethodException : org.codehaus합니다. org.apache.jasper.el.JasperELResolver.invoke (JasperELResolver.java:139)의 에서 jackson.map.ObjectMapper.writeValueAsString (java.util.ArrayList) 을 javax.el.BeanELResolver.invoke (BeanELResolver.java:422)
방법을 찾으려고합니다.인수 유형이 ArrayList
인7.0.53의 this change과 관련이있는 것으로 보입니다. 작동하도록 코드를 어떻게 변경해야합니까? Object 인자로 메소드 호출을해야합니까? 그렇다면 ArrayList
을 EL의 Object에 캐스트 한 다음 메서드를 호출 할 수있는 방법이 있습니까?