如何 fn:join 在 jsp 中实现 toString 的对象



我正在迭代表中的实体列表。此实体具有重写 toString 方法以提供其实例的"name"属性的对象列表。让我们称它们为B对象。

在该表中,我想要一列,其中对象B的所有值(通过调用其toString方法确定)都用逗号连接。就像这个片段一样:

<rich:column visible="false" label="function">
  <f:facet name="header">Function</f:facet>
  <h:outputText value="#{fn:join(a.b, ', ')}" />
</rich:column>

其中b是类 B 的对象列表。唯一的问题是 jsp1.2 不会渲染这个:

javax.servlet.ServletException: Cannot convert [] of type class org.hibernate.collection.PersistentBag to class [Ljava.lang.String;

所以问题是:除了循环输出列表值的<c:forEach>之外,是否有一种很好的方法来处理这个问题?

恐怕这是一个使用 jsp1.2 和 seam2.2 的遗留项目,我不允许升级它。

您可以创建一个返回列表String的 getter:

public String getMyListAsString(){
  return org.apache.commons.lang.StringUtils.join(myList, ", ");
}

您可以在 EL 中使用吸气剂:

#{myBean.myListAsString}

最新更新