【问题标题】:Jsp is not invoking default java functionsJsp 没有调用默认的 java 函数
【发布时间】:2016-01-07 10:41:03
【问题描述】:

我有 jsp,我试图在其中调用默认的 JAVA 函数,如 toString、name() 等。

源对象 -> 不起作用的函数

 Long         ->  toString()
 Enum         ->  name()
 Locale       ->  displayName()

示例 JSP 代码

<div><s:select name="displayLocale" list="locales" listValue="displayName" emptyOption="false" /></div>

对应的Java Action类:

public List<Locale> getLocales()
  {
    List<Locale> locales = localeDAO.getLocales();
    Collections.sort( locales, new LocaleComparator() );
    return locales;
  }

同样,我也面临其他类型的问题..

环境:JSP 2.0、Tomcat 8、Java 8

谁能帮帮我,我还有什么需要做的吗?

谢谢

【问题讨论】:

    标签: jsp java-8 tomcat8


    【解决方案1】:

    哇。我忘记了,但是 jstl 只能访问遵循 javabean 标准的属性,这就是您可以访问语言环境的原因。因此,您只能以“foo”和“baz”的形式访问 getFoo、getBaz、setFoo 和 setBaz 之类的方法。

    似乎可以通过使用自定义标记库来访问类中的静态方法:http://www.javaworld.com/article/2073435/java-web-development/call-javabean-methods-from-jsp-2-0-pages.html 这似乎是为了调用对象上的方法而跳过的太多圈。我已经忘记了我曾经是多么劳动密集型的网络开发。

    您可以考虑使用其他更现代的模板,例如 http://www.thymeleaf.org/

    【讨论】:

    • 即使我无法从语言环境访问 displayName,尽管 java Locale 对象具有 getDisplayName。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2013-03-20
    • 2016-07-18
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多