gpt4 book ai didi

java - 为什么我无法通过表达式语言找到静态方法

转载 作者:行者123 更新时间:2023-12-02 06:29:08 25 4
gpt4 key购买 nike

我有一个带有静态方法 getmyStaticMethod() 的类 MyClass在我的 jsp 中尝试通过 EL 访问此方法时:
${MyClass.myStaticMethod}

它让我无法在 MyClass 类的对象中找到“myStaticMethod”的值是因为静态方法位于类级别,而EL 仅查看对象级别无法找到它??????

提前致谢。 :)

最佳答案

JSP EL 无法访问类的静态方法。

${MyClass.myStaticMethod} 表示:在页面范围中查找名为“MyClass”的属性,然后在请求范围中查找,然后在 session 范围中查找,然后在应用程序范围中查找,如果找到后,获取其名为“myStaticMethod”的属性(即在此对象上调用 getter getMyStaticMethod())。

因此,如您所见,它不会查找名为 MyClass 的类,也不会调用其任何静态方法。 JSP EL 无法做到这一点。

编辑:

从表达式语言规范(Java EE 7 的一部分)3.0 版开始,可以通过以下方式访问静态字段和方法

  • importing the class (或包)在 JSP 中并且
  • 使用类名后跟方法:

    ${MyClass.myStaticMethod()}

关于java - 为什么我无法通过表达式语言找到静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com