2014-03-06 4 views
0

내 양식의 모든 객체에 대해 getters가 액세스 할 수 있도록하는 목록이 있습니다. 리스트를 반복하면서, 어떻게 변수를 getter로 변환하여 객체를 호출 할 수 있습니까? 나는 다음과 같은 것을하려고 노력하고있다. 그러나 이것은 myObject에서 getGetter를 찾고 있기 때문에 정확하지 않다.Struts 1 변수를 기반으로 객체의 getter에 액세스하는 방법

<c:forEach var="myObject" items="${myForm.objects}"> 
    <c:forEach var="getter" items="${myForm.getters}"> 
    <html:text property="${myObject.getter}"/> 
    </c:forEach> 
</c:forEach> 

이유는 내가 객체의 flex 속성 목록을 가지고 있기 때문입니다. Flex 속성의 하위 집합 만 정의 할 수 있습니다. 따라서 중첩 루프는 정의 된 flex 속성 목록을 반복합니다. 여기에 그것을 보여주지는 않지만 코드에서는 연관된 getter가 flex 속성을 호출하도록합니다.

답변

0

내가 원하는 것을하기 위해 내 루프 안에 스크립틀릿을 사용했습니다. 내 개체에 getter를 호출하는 getter를 식별하는 문자열을 취하는 getGetterValue라는 메서드를 추가했습니다. 이 메서드는 문자열을 비교하여 getter를 호출하여 호출 한 다음 getter의 값을 반환합니다.

<c:forEach var="myObject" items="${myForm.objects}"> 
    <c:forEach var="getter" items="${myForm.getters}"> 
    <% 
     MyObject myObject = (MyObject)pageContext.getAttribute("myObject"); 
     String getter = (String)pageContext.getAttribute("getter"); 
     Object getterValue = myObject.getGetterValue(getter); 
    %> 
    <%= getterValue %> 
    </c:forEach> 
</c:forEach> 
+0

그 이유는 무엇입니까? – Rembo