java - 冰 :selectOneMenu sending the wrong value

标签 java jsf icefaces

我的 JSF/ICEFaces 应用程序有多个下拉菜单,它们相互更新,因此根据对其中一个的选择,其他菜单的内容会更新。

问题是菜单发送了错误的值。似乎它发送的是之前的值而不是当前的值!不知道为什么!

有什么想法吗?

谢谢,

  <td>
    <ice:selectOneMenu id="selectCurApplNm"
      value="#{statsDisplayAndFilter.applIDFilterPhrase}"
      disabled="#{statsDisplayAndFilter.disableCurrentApplIdNamesMenu}"
      valueChangeListener="#{statsDisplayAndFilter.fetchEventNames}"
      partialSubmit="true" immediate="true">
      <f:selectItem itemValue="" itemLabel="" />
      <f:selectItem itemValue="all" itemLabel="all" />
      <f:selectItems id="selectCurApplNmItems"
        value="#{statsDisplayAndFilter.currentApplIdItems}" />
    </ice:selectOneMenu>
  </td>
</tr>
<tr>
  <td>
    <ice:outputLabel for="SlctCompTyp" value="Event Name: " />
  </td>
  <td>
    <ice:selectOneMenu id="SlctCompTyp"
      value="#{statsDisplayAndFilter.eventNameFilterPhrase}"
      disabled="#{statsDisplayAndFilter.disableEventNamesMenu}"
      valueChangeListener="#{statsDisplayAndFilter.fetchMethodNames}"
      partialSubmit="true" immediate="true">
      <f:selectItem itemValue="" itemLabel="" />
      <f:selectItem itemValue="all" itemLabel="all" />
      <f:selectItems id="SlctcompTypeItms"
        value="#{statsDisplayAndFilter.eventNameItems}" />
    </ice:selectOneMenu>
  </td>
</tr>

最佳答案

我发现当它调用 valueChangeListener 中定义的方法时,该值尚未绑定(bind)到正确的变量,因此我不得不使用事件变量来获取新值:

public void fetchEventNames(ValueChangeEvent e) throws SQLException{
   String filteringOptions = ""; 
   String newSelectedValue = e.getNewValue().toString();
       .....

这就解决了问题

关于java - 冰 :selectOneMenu sending the wrong value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262777/

相关文章:

java - IceFaces 将其 CSS 和 JavaScript 资源放在每个页面上,无论它们是否使用 Ice 组件。有办法阻止这个吗?

java - JSONArray 名称值对修改

Java spring parse 使用额外字段解析 JSON

java - 如何使用单个 replaceAll 查找 Java 中两个字符串的公共(public)字符?

java - <h :form target ="_blank" only after validation

jsf - 使用 session 中存储的值更改标签值

spring - JSF/Spring Session 在用户之间共享

java - 如何禁用标准组件上未经请求的 ajax (h :commandButton) while using Icefaces?

java - 如何设置jbutton的位置?

java - 除了使用操作之外,还可以通过单击按钮来设置值