У меня есть два взгляда:
- Отображает некоторую общую информацию об объекте
- Отображает дополнительные сведения об этом объекте
Второй вид имеет ссылку на первый. Чтобы создать ссылку, мне нужна некоторая информация, скажем, два идентификатора («id1» и «id2»). Эти идентификаторы передаются контроллеру второго представления параметрами запроса.
Чтобы создать обратную ссылку во втором представлении, я должен вручную передать параметры запроса модели. Это не очень удобно.
Есть ли способ сделать эту переадресацию автоматически?
Вот пример:
Ссылка на детали в первом представлении:
<portlet:renderURL var="detailsUrl">
<portlet:param name="action" value="showDetails" />
<portlet:param name="id1" value="${entity.id1}" />
<portlet:param name="id2" value="${entity.id2}"/>
</portlet:renderURL>
<a href="${detailsUrl}">Details</a>
Метод рендеринга во втором контроллере:
@RenderMapping(params = "action=showDetails")
public String showDetails (
@RequestParam("id1") int id1,
@RequestParam("id2") int id2,
Model model) {
// The current unconvenient approach
model.addAttribute("id1", id1);
model.addAttribute("id2", id2);
return "showDetails";
}
Обратная ссылка во втором представлении:
<portlet:renderURL var="entityUrl">
<portlet:param name="action" value="showEntity" />
<portlet:param name="id1" value="${id1}" />
<portlet:param name="id2" value="${id2}"/>
</portlet:renderURL>
<a href="${entityUrl}">Back</a>
Я искал в Интернете часы, чтобы найти что-то вроде трюка, который я пропустил. Но единственное, что я нашел, было: «Весна дозирует это автоматически для вас». Но я не могу этого подтвердить.
Спасибо за вашу помощь...