Визуализация списков с использованием библиотеки jinjava

Можно ли визуализировать списки, используя библиотеку jinjava?

До сих пор я мог только визуализировать HashMaps. Я использую следующую функцию для преобразования классов case в hashmaps.

  def toNestedJavaMap(caseClass: AnyRef): util.Map[String, Any] =
    (new java.util.HashMap[String, Any]() /: caseClass.getClass.getDeclaredFields) { (accumulator, field) =>
      field.setAccessible(true)
      val value = field.get(caseClass) match {
        case caseClassInstance: Product => toNestedJavaMap(caseClassInstance)
        case x => x
      }
      accumulator.put(field.getName, value)
      accumulator
    }

Что я должен передать в качестве контекста, чтобы сделать такие вещи, как {% for item in items %}?

1 ответ

Не уверен, почему я не попытался передать реализацию Java Iterable интерфейса...

Это рабочая версия, измененная для учета преобразования при использовании потоковых типов scala.

  def toNestedJavaMap(caseClass: AnyRef): util.Map[String, Any] =
    (new java.util.HashMap[String, Any]() /: caseClass.getClass.getDeclaredFields) { (accumulator, field) =>
      field.setAccessible(true)
      val value = field.get(caseClass) match {
        case listInstance: Stream[AnyRef] => listInstance.map(toNestedJavaMap).toList.asJava
        case caseClassInstance: Product => toNestedJavaMap(caseClassInstance)
        case x => x
      }
      accumulator.put(field.getName, value)
      accumulator
    }
Другие вопросы по тегам