我有一个列表告诉我访问表单中所有对象的getter。当我遍历列表时,如何将该变量转换为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属性。
答案 0 :(得分: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>