2016-05-02 27 views
1

So habe ich diese Klassen:Darstelleigenschaft eines Objekts in jsp mit 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 
} 

In meiner Aktion, die ich eine pageDto machen und setzen Sie ihn dann:

request.setAttribute("dto", pageDto); 

Dann in der jsp Ich habe :

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

jedoch die pda.id und tab.id nichts angezeigt werden soll. Ich habe auch versucht, ${tab.id} Bit dies eine Ausnahme zu sagen, dass es keine Getter.

Irgendwelche Ideen?

Antwort

1

Sie können das <bean:write> Tag nicht auf diese Weise verwenden. Anstelle von <bean:write> können Sie das äquivalente JSTL-Tag <c:out> verwenden.

<%@ 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}" /> 
+0

schreiben Es ist nur $ {dto.tab.id} Anzeigen, habe ich jstl 1.1.2 und 1.1.2 Standard-Gläser und meine 2.3 Servlet-web.xml deklariert hinzugefügt als angegeben in http://stackoverflow.com/tags/jstl/info –

+0

Verwenden Sie nicht 2,3, mindestens 2,4. –

1

Güter @Roman C awnser ist gut, aber ich fand einen Weg, um es mit Bohne zu tun: schreiben, so dass es auch ich bin Entsendung.

Verwenden Sie Bean define, um eine Eigenschaft von dto als Bean zu definieren, und dann kann bean: write verwendet werden.

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

Dies wird dto.pda.id