Play 2框架:scala在视图中遍历java对象的字段

Play 2框架:scala在视图中遍历java对象的字段,java,html,scala,playframework,playframework-2.0,Java,Html,Scala,Playframework,Playframework 2.0,对,我正在向视图传递一个Java对象: 我不想如下列出所有字段,而是想知道是否可以将对象的所有字段作为集合(类似于Java中的反射)获取,然后在循环中打印它们 @(item: Item) <li data-item-id="@item.id"> <h4>@item.name</h4> <h3>@item.field1</h3> <h3>@item.field2</h3> ...

对,我正在向视图传递一个Java对象:

我不想如下列出所有字段,而是想知道是否可以将对象的所有字段作为集合(类似于Java中的反射)获取,然后在循环中打印它们

@(item: Item)

<li data-item-id="@item.id">
    <h4>@item.name</h4>
    <h3>@item.field1</h3>
    <h3>@item.field2</h3>
    ...
</li>
@(项目:项目)

@item.name
@项目1.1
@项目1.2
...


第二个问题是什么HTML标记与表示对象最相关(而不是
li
h4
h3
),解决方法不是使用“类似”的反射,而是实际使用反射。无论如何,任何库或框架都很可能基于反射

对象提供了获取所需的所有方法,或者两者都提供。该类包含有关实际字段的所有信息,如名称、类型或值

例子 要在页面上显示的某些类:

public class Item {
    public String foo = "bar";
    public int x = 23;
}
模板:

@(item: Item)
<ul>
  @for(field <- item.getClass().getDeclaredFields()) {
    <li>@field.getName() = @field.get(item)</li>
  } 
</ul>
@(项目:项目)
    @为(场)服务?
    <ul>
      <li>foo = bar</li>
      <li>x = 23</li>
    </ul>