2010-02-17 2 views
2

Struts 2.1.6, xwork 2.1.2 및 ognl 사용 2.6.11 Struts 액션에서 OGNL을 사용하여 요소를 가져 오는 Map이 있습니다. 함께 가져 오기 위해 사용하는 키가 맵에 존재하지 않으면 OGNL은 빈 객체 배열을 반환하고, OGNL은 문자열로 변환하며 객체 참조 [email protected]을 얻습니다. 장소로 사용되며 Object로 지정된 값 generic을 갖는 맵인 것 같습니다. 이것은 내가 바꿀 수있는 것이 아닙니다. 나는 잠시 동안 문제를 추적했지만, OGNL 코드의 내장에 깊이 들어갔을 때 터널 끝에 빛이 보이지 않았습니다. 현재 나는 "java.lang.Object @"로 시작 하는지를보기 위해 문자열 반환을 검사하는 추악한 해킹으로 갈 것이고, 그렇다면 빈 문자열을 반환 할 것이다. 나는 해결책을 좋아하지 않지만 시간이 허락하는 것이지. 비슷한 문제가 발생 했나요?OGNL을 사용하여 Map <String, Object>에서 데이터 반환

또한 OpenSymphony는 어디로 갔습니까? 그들의 웹 사이트에 대한 업데이트가 끝난 것으로 나타났습니다. 사용자 포럼은 11 월 12 일 이전에 Google 그룹으로 변환 중임을 말합니다.

답변

2

이것은 null 값과 관련된 문제입니다. 값이 null 인 경우 기본 동작은 다음과 같습니다. 기본 생성자를 사용하여 값을 만듭니다. 맵의 값 유형이 Object이므로 null이있는 곳에 새 Object가 작성됩니다.

  • 사용 classname-convertion.properties 파일 @CreateIfNull(value = false)
  • 사용 mapName_CreateIfNull=false :이 동작을 중지하기 위해

    .

관련 문제