有条件地将backingbean操作传递到Facelet标记文件



在我的JSF 2.1项目中,我有一个自定义的facelet标记文件,该文件使用"将backingbean操作传递给facelet"标记文件中提供的解决方案来定义actionListener。

问题是,我希望在使用标记时选择而不是具有actionListener,并且该解决方案需要action属性。我不想仅仅为此创建两个版本的标记(有和没有actionListener),因为代码相对较大,这会带来一些维护麻烦。

在没有Java编码的情况下(如果可能的话),我应该做些什么来在标记实现中有条件地添加actionListener?

你不能在动作属性中使用EL条件表达式,有关更多信息,你可以看看这个问题

我不知道你想什么时候(在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
}

希望它能帮助

相关内容

  • 没有找到相关文章

最新更新