0

我有一个 java/spring/tiles 应用程序——基本上是一个表单集合,每个表单都有一个支持实体对象。在这件事结束时,用户将填写至少一个或多达五个实体的数据。

我需要显示一个摘要屏幕,显示用户输入的所有数据。此时,我将知道用户输入了哪些对象,并且可以访问它们。我试图想出一种干净的方式来显示所有这些数据。我最初的想法是使用 jstl/el 来动态地将其全部吐出,但这很快就失控了。现在我正在考虑为每个对象执行此操作:

<c:if test="${not empty object1}">
    ${object1.field1}
    ${object1.field2}
</c:if>
...
<c:if test="${not empty object5}">
    ${object5.field1}
    ${object5.field2}
</c:if>

我觉得必须考虑多达五个这样的对象很糟糕 - 它看起来很笨拙(而且每个对象有两个以上的字段)。有没有更好的方法来处理这种事情?我实际上对几乎任何解决方案都持开放态度,我只是在这里沿着 jstl 路径走,因为我认为有一种方法可以遍历每个对象的字段,但如果有的话我找不到示例。所以一些更漂亮的东西,或者只是像这样用jstl猛烈抨击它?任何提示将不胜感激。

4

2 回答 2

0

您可以创建一个GenericFormObject由所有表单对象实现的接口(例如:),并具有显示为 html 的方法(例如:)getHtmlString()

然后,您可以将集合中的所有表单对象传递给您的视图,并在您的 JSP 中执行以下操作:

<c:forEach var="formObj" items="${formObjCollection}">
  ${formObj.htmlString}
</c:forEach>
于 2013-03-26T23:28:43.153 回答
0

覆盖对象的 toString() 方法并返回您希望显示字段的方式。然后打印对象本身。${objectX}。我相信您可以遍历所有对象。

于 2013-03-26T22:11:47.310 回答