0

我有一个列表,告诉我获取器可以访问我表单中的所有对象。当我遍历列表时,如何将该变量转换为 getter 以调用对象?我正在尝试执行以下操作,但这不正确,因为这是在 myObject 上寻找 getGetter。

<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 属性。

4

1 回答 1

0

我在循环中使用了一个 scriptlet 来做我需要的事情。在我的对象上,我添加了一个名为 getGetterValue 的方法,该方法接收一个标识要调用的 getter 的字符串。该方法比较字符串以查找要调用的 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>
于 2014-03-07T17:29:57.767 回答