在 jsp 和 Struts 中显示对象的属性

DIsplay attribute of an object in jsp with Struts

所以我有那些 类 :

public class DeviceDto {
  private long number;
  private long blob;

  //getters setters

}

public class PageDto {
  private DeviceDto pda;
  private DeviceDto tab;
  private String message;

  //getters setters
}

在我的操作中,我创建了一个 pageDto 然后设置它:

request.setAttribute("dto", pageDto);

然后在 jsp 我有 :

<bean:write name="dto" property="message" />
<bean:write name="dto" property="pda.id" />
<bean:write name="dto" property="tab.id" />

然而 pda.idtab.id 不显示任何内容。 我也试过 ${tab.id} 位这引发了一个异常,说没有 getter.

有什么想法吗?

您不能以这种方式使用 <bean:write> 标签。您可以使用等效的 JSTL 标记 <c:out>.

而不是 <bean:write>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<c:out value="${dto.message}" />
<c:out value="${dto.pda.id}" />
<c:out value="${dto.tab.id}" />

嗯,@Roman C awnser 很好,但我找到了一种使用 bean:write 的方法,所以我也发布了它。

使用bean define将dto的proberty定义为一个bean,然后bean:write就可以使用了

<bean:define name="dto" property="pda" id="pdadto" />
<bean:write name="pdadto" property="id" />

这会写成dto.pda.id