2016-05-02 8 views
1

Поэтому у меня есть эти классы:Отображение объекта в JSP с 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); 

Тогда в СПЯ у меня есть :

<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} bit this raise исключение, говорящее, что нет геттера.

Любые идеи?

ответ

1

Вы не можете использовать тег <bean:write> таким образом. Вместо <bean:write> вы можете использовать эквивалентный тег JSTL <c:out>.

<%@ 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

Это просто отображение $ {dto.tab.id}, я добавил JSTL 1.1.2 и стандартные 1.1.2 банки и web.xml моего 2.3 сервлета объявлен указанная в http://stackoverflow.com/tags/jstl/info –

+0

Не используйте 2.3, не менее 2.4. –

1

Ну @Roman C awnser это хорошо, но я нашел способ сделать это с бобом: писать так, я отправляю его тоже.

Используйте bean define, чтобы определить proberty dto как bean-компонент, а затем bean: write можно использовать.

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

Это запишет dto.pda.id