Использование значения модели в качестве компонента в JSP

Дан следующий контроллер:

@Controller
public class LandingPageController {
    @RequestMapping(value = "/landingPage", method = RequestMethod.GET)
    public String landingPage(Map<String, Object> model) {
        model.put("page", new LandingPage());
        return "landingPage";
    }
}

Это будет мой JSP:

<c:forEach items="${page.links}" var="link">
    <a href="${link.reference}">${link.label}</a>
</c:forEach>

IntelliJ показывает следующее предупреждение:

Не удается разрешить переменную "страница"

Используя быстрое исправление, IntelliJ добавляет:

<jsp:useBean id="page" scope="request" type="com.myApp.LandingPage"/>

Это, в свою очередь, приводит к исключению повторяющейся переменной при загрузке сайта.

Теперь мой вопрос:

Как определить переменную в JSP (включая ее тип) без создания дубликата?**

1 ответ

<%--@elvariable id="page" type="com.myApp.LandingPage"--%>
<c:forEach items="${page.links}" var="link">
    <a href="${link.reference}">${link.label}</a>
</c:forEach>

Используя @elvariable, информация о типах теперь доступна, и IntelliJ выдает завершение кода, а также предупреждения, если метод (getLinks в этом примере) не существует

Смотрите этот вопрос

Другие вопросы по тегам