【问题标题】:javascript var not correctly passed to backing beanjavascript var 未正确传递给支持 bean
【发布时间】:2012-07-05 05:17:01
【问题描述】:

我的这段代码无法运行。我定义了fieldToStore。我可以提醒它,我可以在 firebug 控制台中看到它的值,但是当它传递给 myBean 时,如果它是字符串值,它总是未定义的,如果它是布尔值,它总是未定义的。 有什么想法吗?

<a4j:commandButton id="bt1" action="#{myBean.doSomething}" onclick="fieldToStore=false;saveFieldState();">
</a4j:commandButton>        
<a4j:jsFunction name="saveFieldState" action="#{myBean.dummyAction}" />
   <a4j:actionparam name="fieldToStore" assignTo="#{myBean.fieldToStore}" />
</a4j:jsFunction>

我的期望是,在我点击 bt1 后,myBean.fieldToStore 的值为 false,根据 javascript var fieldToStore。

【问题讨论】:

  • 能否请您发布您的代码以便我们了解问题?
  • 我正在尝试,但它没有显示:(
  • 你需要把代码换行,每行前四个空格。
  • 未定义是什么意思?字段“fieldToStore”的值是“未定义”还是“fieldToStore”为空/空白?
  • 如果我用字符串值分配 fieldToStore,它将传递值“未定义”。如果我用布尔值分配它,它总是错误的。

标签: javascript ajax jsf ajax4jsf


【解决方案1】:

您正在使用&lt;a4j:actionParam&gt;,即a combination of f:param and f:actionListener 将其value 属性分配给assignTo 中的属性。

您想改用&lt;a4j:param&gt;。看到这个example in the official docs

【讨论】:

  • 我已经把我的工作工具留在了工作中,因为我快疯了 :) 我明天会试试。谢谢!
  • 我相信这仅在 Richfaces 4.x 中受支持,我们目前正在使用 3.3.x。
  • 哦!好吧,在这种情况下,您可以尝试改用f:param
  • 我认为我正在按照 3.3.3 版本的指南做所有事情:docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/…
  • 请注意,a4j:commandButton 的 onclick 执行与a4j:jsFunction 的执行不同步。如果您在 myBean.doSomething 方法上对其进行测试,那么它很可能是未定义的。会是这样吗?
【解决方案2】:

我想通了...问题出在我在 onclick 事件上调用 jsFunction 的方式上:

onclick="fieldToStore=false;saveFieldState();

应该是:

onclick="fieldToStore=false;saveFieldState(fieldToStore);

richfaces 文档中的示例具有误导性:

<body onload="callScript()">
  <h:form>
         ...
        <a4j:jsFunction name="callScript" data="#{bean.someProperty1}" reRender="someComponent" oncomplete="myScript(data.subProperty1, data.subProperty2)">
              <a4j:actionparam name="param_name" assignTo="#{bean.someProperty2}"/>
        </a4j:jsFunction>
        ...
  </h:form>
  ...
</body>

Imo 它应该是 onload="callScript(param_name)"。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 2013-12-30
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多