2009-06-06 3 views
1
<c:set var="nameLookup" value="${names}" /> 
<c:forEach var="result" items="${results}"> 
    <tr>   
     <td>${result.uglyDisplayName}</td> 
     <td>${result.phonenum}</td> 
    </tr> 
</c:forEach> 

이것은 편집하려고하는 JSP에서 발췌 한 것입니다.jsp에서 java 객체 사용

결과는 List<Object>ObjectgetUglyDisplayNamegetPhonenum A가 들어있는 제어기로부터의 ModelAndView에 반환되고있다. 그게 어떻게 작동하는지 나는 분명하지 않습니다. jsp가 getClass().getName() 또는 무언가 뒤에 뭔가를하고있는 것 같군요? 그 과정에 대한 어떤 조언도 깨닫게 될 것입니다. 어쨌든, 그 부분은 효과가 있습니다.

컨트롤러에서 ModelAndView에 반환 할 다른 개체를 추가했습니다. 못생긴 표시 이름이 키인 더 멋진 표시 이름을 가진 HashMap입니다. 그래서 첫 번째 td를 다음과 같이 바꾸고 싶습니다.

<td>${nameLookup.get(result.uglyDisplayName)}</td> 

이것은 분명히 작동하지 않거나 여기서 게시하지 않을 것입니다. 나는 앞서 가서 ModelAndView에 HashMap을 넣는 var에 값을 설정했지만 (꼭대기에) 그 객체를 얻는 것이 올바른지 잘 모르겠습니다.

+0

서식을 수정했습니다. http://stackoverflow.com/editing-help을 참조하십시오. –

답변

2

첫 번째 부분 ("JSP가 수행하는 작업")은 JSP Expression Language을 참조하십시오.

두 번째의 경우, 시도 :

<td>${nameLookup[result.uglyDisplayName]}</td> 

내가 가 작동 것이다 (그것은 내가 JSP를 사용한 적이 있기 때문에 긴 시간이다)하지만이 시도 가치가 맹세에 좋아하지 않을 것입니다.

+1

Jon은 그럴만한 경향이 있습니다. 비 정적 메소드 호출은 JSR 245 (JEE6/JSP 2.1 컨테이너)에 구현되었습니다. 따라서 가까운 장래에 다음과 같은 호출이 유효합니다. nameLookup.get (result.uglyDisplayName) – McDowell