在JSP中使用模型值作为bean

时间:2017-10-20 09:22:17

标签: jsp spring-mvc intellij-idea usebean

给出以下控制器:

@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显示以下警告:

  

无法解决变量&#39; page&#39;

使用quickfix,IntelliJ添加:

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

这反过来会导致加载网站时出现重复的变量异常。

现在我的问题:

如何在JSP中定义变量(包括其类型)而不创建副本?**

1 个答案:

答案 0 :(得分:0)

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

使用 @elvariable ,现在可以输入类型信息,如果方法(本例中为getLinks)不存在,IntelliJ会提供代码完成和警告

请参阅此question