【问题标题】:JSF + Seam + a4j Triggering one component ajax from a different component eventJSF + Seam + a4j 从不同的组件事件触发一个组件 ajax
【发布时间】:2013-11-22 14:51:26
【问题描述】:

我想问一下标题是什么意思: 假设我们有一个输入文本和一个按钮。好吧,我想在单击按钮时在 inputtext 中提交一个 ajax 请求。

例如,从 inputtext 的角度来看,我想达到这样的效果:

<h:inputtext>
   <a4j:support event="button.onclick"/>
<h:inputtext>
<h:button id="button">

或者,从按钮的角度来看:

<h:inputtext id="input"/> 
<h:button id="button">
   <a4j:support event="onclick" action="input.submit"/>
</h:button>

不知道是否有简单的方法来完成这项工作。

提前致谢!!

【问题讨论】:

    标签: ajax jsf seam


    【解决方案1】:

    如果你只是想要一个简单的表单提交,我认为这两种方法都是错误的,只要你把你的 inputtext 和 button 正确地放在一个表单中,表单会自动提交你在这个表单中的任何内容,包括用户在 inputtext 中的输入你点击按钮。没有必要自己做input.submit之类的事情。 (这也不正确)

    对于以下情况,当您单击按钮时,您将看到托管 bean 的 setInputValue() 被调用。

    <h:inputtext id="input" value=#{bean.inputValue}/>
    
    public void setInputValue(String inputValue){
        this.inputValue = inputValue;
    }
    

    【讨论】:

    • 感谢您的回答!我不想提交表单,我还有其他未在上面的示例代码草稿中指定的组件。我需要为 inputtext 触发一个 ajax 请求,但是,问题是我需要从另一个组件触发它,而不是例如从 inputtext 本身的“onblur”,而是例如从“onclick”中的动作一个按钮
    【解决方案2】:

    尝试使用

    Richfaces Region 组件可将您的请求限制在不同的区域。

    http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/a4j_region.html

    【讨论】:

    • 谢谢!我也试过这个,不知道它是否以正确的方式但没有奏效。我终于用 a4j:function 完成了。
    【解决方案3】:

    我终于通过&lt;a4j:jsFunction&gt; 完成了这项工作 a4j:jsFunction

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 2010-09-12
      • 2019-01-26
      • 1970-01-01
      • 2014-03-07
      • 2012-09-22
      • 2011-07-01
      • 2021-01-20
      • 1970-01-01
      相关资源
      最近更新 更多