Главная » Spring » Представление, отображающее список  сообщений Spring

0

Отображение списка сообщений в данном случае мало чем от- личается от вывода списка сообщений на главной странице. До- статочно будет вывести имя пользователя (чтобы было ясно, кому принадлежат сообщения) и ниже перечислить все его сообщения.

Для этого прежде всего необходимо создать новое определение шаблона. Метод listSpittlesForSpitter() возвращает логическое имя представления spittles/list, а решить поставленную задачу нам по- может следующее определение шаблона:

<definition name="spittles/list" extends="template">

<put-attribute  name="content"

value="/WEB-INF/views/spittles/list.jsp" />

</definition>

Подобно шаблону home, этот шаблон добавляет страницу JSP в атрибут content для отображения внутри main_template.jsp. В лис- тинге 8.7 представлено содержимое файла list.jsp, используемого для отображения списка сообщений.

Листинг 8.7. Файл list.jsp – страница JSP, используемая для отображения списка сообщений

<%@     taglib    prefix="s"    uri="http://www.springframework.org/tags"%>

<%@     taglib     prefix="c"     uri="http://java.sun.com/jsp/jstl/core"%>

<div>

<h2>Spittles  for  ${spitter.username}</h2>     <!–  Вывод  имени  пользователя  –>

<table cellspacing="15">

<c:forEach items="${spittleList}"

var="spittle">                            <!–  Вывод  списка  сообщений  –>

<tr>

<td>

<img     src="<s:url     value="/resources/images/spitter_avatar.png"/>" width="48"  height="48"  /></td>

<td>

<a     href="<s:url     value="/spitters/${spittle.spitter.username}"/>">

${spittle.spitter.username}</a>

<c:out value="${spittle.text}" /><br/>

<c:out  value="${spittle.when}"  />

</td>

</tr>

</c:forEach>

</table>

</div>

Отбросив эстетическую сторону дела, эта страница JSP реализует все, что необходимо. В начале файла выводится заголовок с име- нем пользователя, которому принадлежат сообщения. Этот заголо- вок ссылается на свойство username объекта Spitter, который метод listSpittlesForSpitter() поместил в модель под именем ${spitter. username}.

Самая интересная часть этой страницы JSP – итерации по спис- ку сообщений и вывод информации о них. Атрибут items JSTL-тега

<c:forEach>  ссылается на список с именем ${spittleList}, данным ему методом addAttribute()  модели Model.

В данной реализации есть один маленький недостаток, на кото- рый следует обратить внимание, – здесь в качестве аватара пользо- вателя используется жестко определенный файл spitter_avatar.png. В разделе 8.5 будет показано, как дать пользователю возможность выгружать собственные изображения для использования в качестве аватара.

Результат отображения содержимого списка сообщений страни- цей list.jsp представлен на рис. 8.5.

Но сначала необходимо дать пользователям возможность регист- рироваться в приложении. Для этого необходимо написать контрол- лер, обрабатывающий данные, отправляемые с формой.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии