使用 JSTL 的 Lombok 新手 - 它应该如何工作?

Lombok newbie with JSTL - how is it supposed to work?

我有一个 JSP 使用 JSTL 来访问名为 Month

的 bean 的实例列表
<c:forEach var="month" items="${months}">
    <option value="${month.index}">${month.label}</option>
</c:forEach>   

直到最近,Month class 的所有 Getters 和 Setters 都已明确声明;但后来我听说了 Lombok 项目,想知道它是否适用于此。因此,使用 Lombok 的注释,我将 Month class 定义为:

public @Data class Month{
    private Integer index;
    private String label;
    private boolean selected;  
}

我希望它 'automagically' 生成 Getters 和 Setters 以便 JSTL 可以做它的事情,但是当我访问该页面时,我在服务器上遇到异常 javax.el.PropertyNotFoundException: Property 'index' not found on type com.company.package.Month

我是不是搞错了在这种情况下如何应用 Lombok?

请检查“关于 Eclipse”屏幕是否正确安装了 lombok。最重要的是,它应该说类似

Lombok v1.16.8 "Candid Duck" is installed. https://projectlombok.org/

如果没有,请检查eclipse.ini,并查看vmargs中是否提供了代理:-javaagent:lombok.jar.

  • 是:直接启动 eclipse.exe,不使用快捷方式。它有效,修改快捷方式以添加正确的 vmargs
  • 否:停止 Eclipse,使用 java -jar lombok.jar 将 lombok 安装到 Eclipse 中,或者双击 jar 文件,然后启动 Eclipse。不要使用 restart,因为它不会获取 ini 文件中的修改。

披露:我是 lombok 开发人员。