【问题标题】:Lombok newbie with JSTL - how is it supposed to work?带有 JSTL 的 Lombok 新手 - 它应该如何工作?
【发布时间】:2016-06-17 00:40:47
【问题描述】:

我有一个使用 JSTL 的 JSP 来访问名为 Month 的 bean 的实例列表

<c:forEach var="month" items="${months}">
    <option value="${month.index}">${month.label}</option>
</c:forEach>   

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

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

我希望这会“自动”生成 Getter 和 Setter,以便 JSTL 可以完成它的工作,但是当我访问该页面时,我在服务器上遇到异常 javax.el.PropertyNotFoundException: Property 'index' not found on type com.company.package.Month

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

【问题讨论】:

  • 您使用的是什么 IDE,什么编译器?创建 Month object 的代码是否有效?你能从 Java 程序中调用 getter 吗?
  • Eclipse/Tomcat/Java 1.7.0_45-b18。如果我在 Month bean 上声明显式 getter,则相同的代码可以工作。如果我只使用 Lombok 注释并编写一个调用 month.setIndex(1) 的程序,我会收到编译器错误undefined method

标签: java jstl lombok


【解决方案1】:

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

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 文件中获取修改。

披露:我是龙目岛开发人员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2013-04-04
    • 2021-10-22
    • 2012-01-10
    • 1970-01-01
    相关资源
    最近更新 更多