首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用h:selectOneRadio的ajax侦听器

不使用h:selectOneRadio的ajax侦听器
EN

Stack Overflow用户
提问于 2016-10-04 14:58:05
回答 1查看 1.2K关注 0票数 0

编辑了更多信息以获得清晰性

我们正在将应用程序从JBoss 5迁移到Tomee 7.0.1+。在Tomee上,我们使用的是MyFaces 2.2.10和RichFaces 4.2.0 (在Jboss上,我们使用Mojarra而不是MyFaces)。

f:ajax侦听器在单选按钮列表中没有触发值更改时遇到了问题。这是我们的代码:

代码语言:javascript
运行
复制
 <h:selectOneRadio value="#{managedBean.paramsType}"
   layout="pageDirection">
   <f:selectItem itemValue="Item1" itemLabel="Item1" />
   <f:selectItem itemValue="Item2" itemLabel="Item2" />
   <f:ajax render="@form" execute="@form" listener="#{managedBean.checkSelection}" />
  </h:selectOneRadio>

<h:selectManyCheckbox value="#{managedBean.objectList}" layout="pageDirection">
   <f:selectItem itemValue="checkOption1" itemLabel="Option1" itemDisabled="#{managedBean.paramsType == 'Item3'}"/>
   <f:selectItem itemValue="checkOption2" itemLabel="Option2" itemDisabled="#{managedBean.paramsType == 'Item1'}"/>
   <f:selectItem itemValue="checkOption3" itemLabel="Option3" itemDisabled="#{managedBean.paramsType == 'Item2'}"/>
</h:selectManyCheckbox>

在托管bean中,checkSelection方法具有以下签名:

代码语言:javascript
运行
复制
public void checkSelection()
{
 //update objectList (select or deselect items) based on radio button selection
}

在TomEE上运行应用程序时,从不调用选中项,但在JBoss (相同的代码)上也会调用相同的选项。

在TomEE上,我们尝试添加AjaxBehaviorEvent作为checkSelection方法的输入参数,但是这个方法从来没有被调用,不管有没有这个参数。看起来,f:ajax的侦听器属性由于某种原因没有处理该事件。

浏览器控制台或应用程序或服务器日志中没有报告错误--根本不调用该方法。此外,h:消息不显示任何错误。

此外,我们尝试使用a4j:ajax和valueChangeListener。a4j:ajax的行为与f:ajax相同--不调用托管bean中定义的方法;valueChangeListener不适用于我们,因为它是由与f:ajax侦听器不同的事件触发的,我们需要改变单选按钮中的选择,以影响在同一表单上选择h:selectManyCheckbox组件。

EN

回答 1

Stack Overflow用户

发布于 2018-04-24 17:35:38

对于新来的人:我几乎有同样的问题,几乎耗尽了互联网,没有解决办法。

从jsf 2.2(.?)迁移时得到解决。调至2.3。

顺便说一句,@#$%!@#$*,在另一种情况下浪费了2天时间,所以把这当作学习/记忆的困难方式,当面对这样的问题时,总是首先升级你的库.

增编:不要盲目地更新您的库。

正如乔恩·贝茨( Jon Bates )所指出的那样,每一项改变都会带来在系统中引入新bug的潜力,尽管新旧主题本身是有争议的,但普遍的共识是,在处理已被证明稳定的系统时,良好做法是将变化保持在最低限度,直至将新的预期目标存档。这就是为什么好的库通常有主要的、次要的和修订的数字的原因之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39855612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档