JSTL打印嵌套对象

如何在JSP页面上的地图中打印嵌套对象/属性的值?

   

那么让我们说Survey有一个名为Questions的属性(这是另一个对象),我想打印那些问题(survey.questions.getId()或survey.questions.getTitle()),那个foreach语句看起来怎么样?

编辑:调查是地图而不是集合

如果您的嵌套属性是单个对象实例,则只需直接引用它,如:

  ${surveyItem.title}   

这假设您有一组Survey对象绑定到Survey属性,并且每个Survey都有一个标题。 它将打印每个调查的标题。

如果您的嵌套属性是对象的集合,那么您使用forEach循环来迭代它们,就像在您的示例中一样。

  ${question.title}  

这将打印每个Question的标题,假设您有一个Survey对象绑定到survey属性,并且Survey对象有一个Question对象的集合作为一个字段(使用适当的getter方法,即getQuestions() )。

您还可以使用嵌套循环,例如:

  ${surveyItem.title}  ${question.title}   

这将打印每个Survey的标题以及每个Survey中每个Question的标题。

如果由于某种原因你决定通过Map ,你可以这样做:

  Map Key: ${entry.key} Map Value: ${entry.value} Nested Property: ${entry.value.title} Nested Collection:  ${question.title}   

如果您的Survey.Question是另一个集合对象,基本上您需要在循环中迭代两次。 例如,

    $ or $