Использование значения модели в качестве компонента в 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 в этом примере) не существует
Смотрите этот вопрос