【问题标题】:Conditionally passing backing bean action to Facelet tag file有条件地将支持 bean 操作传递给 Facelet 标记文件
【发布时间】:2016-11-26 12:18:05
【问题描述】:

在我的 JSF 2.1 项目中,我有一个自定义的 facelet 标记文件,它使用 Passing backing bean action to Facelet tag file 中提供的解决方案定义了一个 actionListener。

问题是,我希望在使用标签时选择 not 具有 actionListener,并且该解决方案使 action 属性成为必需。 我宁愿不必为此创建两个版本的标签(带和不带 actionListener),因为代码比较大,会带来一些维护麻烦。

我应该怎么做才能有条件地在标签实现中添加 actionListener,而不使用 Java 编码(如果可能的话)?

【问题讨论】:

    标签: jsf actionlistener facelets tagfile


    【解决方案1】:

    你不能在动作属性中使用EL条件表达式,更多信息你可以看this question

    我不知道你想要(在 wich 事件中)何时执行 actionListener 方法,但你可以更改 a4j:support 标记的 actionListener 并尝试以下代码

    条件逻辑可以调用js函数,也可以直接将条件保存到参数中(取决于逻辑复杂度)

    <ui:param name="parameter" value="#{bean.parameterValue}/>
    <h:inputText>
             <a4j:support event="onchange" onsubmit="if(checkCondition(parameter))){return true;}" actionListener="#{bean.yourMethod()}"/>
    </h:inputText>
    
    function checkCondition(parameter){
       //your logic
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多