在 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.id
和 tab.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
所以我有那些 类 :
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.id
和 tab.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