在JSF中 - 尝试实现类似于“#{bean.run(3)}”的东西

时间:2010-02-08 12:47:24

标签: java ajax jsf richfaces

我想从支持bean动态添加按钮到JSF页面(也支持Rich Faces)。

按钮的值需要在运行时确定,并在按下按钮时返回到辅助bean。 (因此标题 - 我实际上试图做一些像“#{beans.run(3)}”这样的事情,即 - 设置一个固定的参数,当点击一个按钮时使用)

因此,例如,如果用户创建一个按钮(在运行时)并为按钮提供值。应将此值返回给要分析的辅助bean。

我的问题 - 如何在运行时分配一个按钮(该按钮是带有a4j:支持子代的JSF组件)? (我尝试使用a4j:actionParam,但无法设法解决)

P.S - 我已经彻底改变了这个问题,从原来太长的问题来看,这个问题更短,更重要

1 个答案:

答案 0 :(得分:3)

有许多选择:

  • 使用JSF 2.0
  • 使用JBoss EL扩展
  • 使用<f:setPropertyActionListener value="3" target="#{bean.propety>,其中propety稍后会被run()方法读取。

    <h:commandButton action="#{bean.run}">
        <f:setPropertyActionListener target="#{bean.property}" 
            value="#{pageVariable}" />
    </h:commandButton>
    <!-- pageVariable contains the number you are passing -->
    
    public class Bean {
       private int property; // with setters and getters
       public void run() {
          // do something with property
       }
    }
    
  • 使用Facelets函数(here's an example用于此类函数)(并非适用于所有情况)