java - 对于 JSF 2.0,如何在 Tomcat 6 上启用 EL 2.2

标签 java jsf tomcat netbeans el

我将 netbean 6.9.1 与 apache tomcat 6 一起使用。在我的 jsf 页面中,我想要带参数的调用方法,目前,我使用默认为 EL 的 tomcat 6。

我从下载了 EL 2.2 http://download.java.net/maven/glassfish/javax/el/el-api/2.2.0-SNAPSHOT/el-api-2.2.0-SNAPSHOT.jar

http://download.java.net/maven/glassfish/org/glassfish/web/el-impl/2.2.0-SNAPSHOT/el-impl-2.2.0-SNAPSHOT.jar

我将这些文件重命名为 el-api-2.2.0.jar 和 el-impl-2.2.0.jar,然后复制到 tomcat 库 (C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.26\lib)

在 web.xml 中,我添加了这个

  <context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
  </context-param>

KategoriManager.java(用于测试)

public String editSetup(Integer id) {
    return "kategori_edit";
}

和Edit.jsp

---cut---
<h:commandLink value="Edit" action="#{kategoriManager.editSetup(1)}"/>
---cut---

但在 IDE netbean 中,我仍然收到工具提示错误,如 “函数必须使用前缀”

我运行这个网站,但我得到了错误

HTTP Status 500 -

type Status report

message

description The server encountered an internal error () that prevented it from fulfilling this request.
Apache Tomcat/6.0.26

如何在 Tomcat 6 上启用 EL 2.2?请帮助..

谢谢

最佳答案

JAR 应该放在 webapp 的 /WEB-INF/lib,而不是服务器的 /lib。您还应该绝对确保在 /WEB-INF/lib 中没有 EL API JAR 的另一个副本。大多数初学者因为一些不明显的原因而放弃,例如 /WEB-INF/lib 中的 javaee.jar 以“修复”编译错误。

另一种方法是使用 JBoss EL。另见 Invoke direct methods or methods with arguments / variables / parameters in EL获取说明。

关于java - 对于 JSF 2.0,如何在 Tomcat 6 上启用 EL 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214646/

相关文章:

java - 是否有实用程序或 API 可以将 SMS 速记缩写转换为正确的句子?

java - 如何在Javafx应用程序中显示特殊字符

javax.faces.application.ViewExpiredException 看似被忽略

java - 有效 web.xml 中缺少 web-fragment.xml 中的元素

java - Maven - JAVA_HOME 位置和编译失败执行 javac

linux - 部署地理服务器 WAR 后,Tomcat 未在浏览器上加载 - Ubuntu

java - 使用 String.format 而不是连接的 toString 方法的 IntelliJ Idea 模板

java - 如何使用 TLS1.0/TLS1.1 强制加载 Java 小程序

jsf - ServletContext.TEMPDIR无法解析或不是字段

jsf - 如何初始化 Java FacesServlet