【问题标题】:Weird issue with h:selectOneRadio on Apache Tomee 7.0.1Apache Tomee 7.0.1 上 h:selectOneRadio 的奇怪问题
【发布时间】:2017-04-04 04:18:07
【问题描述】:

我无法让f:ajax 侦听器在最简单的 JSF 2.2 页面上工作。值已分配,但听者是聋子。奇怪的是,如果我用h:selectOneMenu 替换h:selectOneRadio,同样的代码工作得很好。这是html:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:h="http://xmlns.jcp.org/jsf/html">

<h:head>
  <title>Test</title>
</h:head>
<h:body>
  <h:form id="f" >
    <h:selectOneRadio id="r" value="#{test.mode}">
      <f:selectItem itemValue="One"/>
      <f:selectItem itemValue="Two"/>
      <f:selectItem itemValue="Three"/>
      <f:ajax render="@form" execute="@form" listener="#{test.listener2()}"/>
    </h:selectOneRadio>
    <br/>
    <h:outputText id="out" value="#{test.mode}"/>
  </h:form>
</h:body>
</html>

还有豆子:

@Named
@SessionScoped
public class Test implements Serializable {

  private final static Logger LOG = Logger.getLogger(Test.class.getName());

  private String mode;

  public String getMode() {
    return mode;
  }

  public void setMode(String mode) {
    this.mode = mode;
    LOG.info("Mode setter: " + mode);
  }

  public void listener1(AjaxBehaviorEvent event) throws AbortProcessingException {
    LOG.info("Mode listener 1: " + mode);
  }

  public void listener2()  {
    LOG.info("Mode listener 2: " + mode);
  }

}

对于h:selectOneRadio,两种侦听器方法类型都不会触发。将 bean 设为 @ManagedBean 并使用不同的 ajax 事件类型也无济于事。

在将 Apache Tomee 升级到版本 7.0.1(MyFaces 2.2.10、JSF 2.2)后出现此问题。 MyFaces 到 2.2.11 也有同样的问题。

Web 应用程序捆绑在一个耳朵里,没有加载其他 JSF 库,没有 Primefaces 和类似的,没有 servlet 过滤器,什么都没有 - 一个纯 JSF 2.2 应用程序。

有什么想法吗?

【问题讨论】:

  • 尝试向f:ajax添加显式事件
  • @Kukeltje 没有区别,对大多数都进行了测试。
  • 哎呀,我错过了你已经提到的......对不起......所以如果我理解正确,调用 listener1 也不起作用(在 xhtml 中没有括号)?添加h:messages 时有任何信息吗?当您在开发模式下运行应用程序时会怎样?
  • @Kukeltje,同样,没有日志或错误,看起来侦听器被跳过或未解决。刚刚提交了错误,这是一个真正的塞子。

标签: jsf-2 jsf-2.2 myfaces apache-tomee tomee-7


【解决方案1】:

MyFaces 中有一个错误,将在 MyFaces 2.2.12 中修复。 如果您需要即时解决方案,请使用 MyFaces 快照,它们似乎工作正常,只需将它们放在 Tomee 的 lib 文件夹中,而不是 myfaces-api-*myfaces-impl-* 的库存版本。

https://issues.apache.org/jira/browse/MYFACES-4068

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2010-11-08
    • 1970-01-01
    • 2021-02-26
    • 2011-01-01
    • 1970-01-01
    相关资源
    最近更新 更多