2016-08-01 5 views
-1

이렇게 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)}" /> 

writeValueAsStringmethod signature의 개체 매개 변수를 사용합니다. 내가 actionItems (ArrayList)을 통과 할 때 작동했습니다.

는 지금은 7.0.70로 7.0.52에서 내 아파치 톰캣 7을 업그레이드하고, 그리고 코드는 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에 캐스트 한 다음 메서드를 호출 할 수있는 방법이 있습니까?

답변

0

이것이 우리가 제기 한 문제입니다. 이러한 매개 변수화 된 메서드 호출이 지원됩니다.