jsf - 在 JSF 1.2 中通过 EL 调用带参数的方法

标签 jsf el jsf-1.2

我正在使用数据表,每一行都有两个按钮,一个“编辑”和一个“删除”。

如果相关行满足特定条件,我需要这些按钮为只读,即禁用。我在看到过JSF 2 可以将参数传递给方法调用。 JSF 1.2 中有什么等效的东西吗?

理想情况下,我希望它类似于(循环变量是 loop 并且还有另一个 bean,helper,它包含我要调用的方法):

<h:commandButton value="Edit"
                   disabled="#{helper.isEditable(loop.id)}" />

在这种情况下,向 bean 添加 isEditable 属性没有语义意义,并​​且围绕 bean 创建包装对象也不切实际。

提前致谢。

最佳答案

I have seen in JSF 2 that it is possible to pass parameters to method calls. Is there anything equivalent in JSF 1.2?



将参数传递给方法调用是 不是 特定于 JSF 2。它特定于 EL 2.2,后者又是 JSP 2.2/Servlet 3.0/Java EE 6 的一部分。JSF 2 恰好也是 Java EE 6 的一部分。换句话说,如果您将 JSF 1.2 Web 应用程序部署到 Servlet 3.0 兼容容器(如 Tomcat 7、Glassfish 3 等)和您的 web.xml被声明为符合 Servlet 3.0 规范版本,那么它也将适用于 JSF 1.x。

但是,如果您仍然针对旧 Servlet 版本的容器,则需要提供不同的 EL 实现,该实现支持使用参数调用方法。其中一种实现是 JBoss-EL您只需删除 jboss-el.jar 即可安装文件在 /WEB-INF/lib并将以下上下文参数添加到 web.xml .这是一个特定于 Mojarra 的示例(Mojarra 是 JSF RI 的代号):

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

如果您使用 MyFaces 作为 JSF 实现,则需要以下上下文参数:

<context-param>
    <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>

也可以看看:
  • Invoke direct methods or methods with arguments / variables / parameters in EL
  • 关于jsf - 在 JSF 1.2 中通过 EL 调用带参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325298/

    相关文章:

    html - jsf 页面的中心组件

    java - 使用 EL 从 JSP 访问 JavaBean 方法

    jsf - JSF不是空条件

    jsf - 如何在EL表达式中串联字符串?

    java - Icefaces 1.8 SelectInputText 字符串值自动完成

    ajax - InputTextarea 自动滚动行为

    java - 错误 java.lang.NullPointerException JSF

    java - 在 Java Server Faces 中将托管属性与 CommandButton 一起使用

    java - jboss 7 不扫描 jre 的 ext 文件夹

    java - Richfaces 3动态列数据表