java - 通过 EL 3 (Tomcat 8.0.14/27) 访问 JSF 中的静态成员

标签 java jsf tomcat el static-members

如标题所述,我在通过 JSF 中的 EL 3 呈现静态值时遇到问题。

有一个类似我的问题,但它在 JSP 中并且有一个解决方法(参见 Access static property or method in JSP via EL 3.0 (JEE7; Tomcat 8))

问题是当我在我的任何 .xhtml 文件中使用像这样简单的东西时,什么都没有呈现

#{Boolean.TRUE}

虽然这个网站https://java.net/projects/el-spec/pages/StaticField说以下会起作用。

#{T(java.lang.Boolean).TRUE}

它也失败了,错误类似于

javax.el.ELException: Function 'T' not found

我已经尝试了 Access static property or method in JSP via EL 3.0 (JEE7; Tomcat 8) 中提到的解决方法.对 JSP 人员有效的解决方法是在他们的 Tomcat 库中用 javax.servlet.jsp-api-2.3.2-b01.jar 替换 jsp-api.jar。 这对我也不起作用 :(

对我有用的是独立实现,就像这样

ELProcessor elp = new ELProcessor(); Object ret = elp.eval("Boolean.FALSE"); getLog().info("Output Value: " + ret);

我确实得到了这样的正确输出

2015-10-07 17:38:13 INFO WelcomeAction:38 - Output Value: false

我尝试了真值和假值,它们都运行良好。不确定此信息是否有帮助,但我将 spring 4.1.1 与 webflow 2.4.1 一起使用。我还尝试了两个不同的 tomcat 实例 8.0.14 和 8.0.27,但都没有用。

不可能只有我一个人在处理这个问题。我还没有找到关于此的错误报告,尽管有人报告并解决了 JSP https://java.net/jira/browse/GLASSFISH-20778

非常感谢有关 meow 的一些帮助。提前致谢。阿罗哈!

最佳答案

The issue is nothing is being rendered when I use something as simple as this in any of my .xhtml files

#{Boolean.TRUE}

不幸的是,它只能通过 ${Boolean.TRUE} 在 JSP 中工作,不在 Facelets 中。


Although this site https://java.net/projects/el-spec/pages/StaticField says the following would work.

#{T(java.lang.Boolean).TRUE}

该站点仅包含提案/原型(prototype)。最后的实现确实是做的不一样。对于最终实现,请阅读 EL 3.0 specification文件代替。


基本上,更改需要在 Facelets 端完成,而不是在 EL 端。 EL 3.0 提供对静态字段的支持,但 Facelets 根本没有利用它。即使是 EL 3.0 import handler毕竟在 Facelets 中不起作用。这很可能是一个疏忽。我有 pinged关于这个的 JSF EG。

与此同时,最好的办法是创建一个自定义标签处理程序来完成这项工作。 JSF 实用程序库 OmniFaces在其分类中有这样的标签处理程序, <o:importConstants> .

关于java - 通过 EL 3 (Tomcat 8.0.14/27) 访问 JSF 中的静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006610/

相关文章:

java - java判断元素不为null的方法

java - 使用ZoneId得到的下拉列表太长,如何简化列表?

java - 为什么我的 Tomcat 服务器会间歇性地抛出 40 4's when compiling JSP' s?

java - 如果在 Tomcat 服务器关闭时在线程中使用 JDBC 数据库连接,它们会被释放吗?

scala - 在 tomcat 7 上使用 akka 部署喷雾,无法从 Rest API 获得响应

java - 如何在 JFileChooser 中保存 csv 文件?

java - 就速度而言,什么时候存储比较结果与重新计算比较才有意义?

java - h :commandButton works from the second click

java - Richfaces主题问题和数据表样式类问题

jsf和primefaces更新问题