【问题标题】:What does ajax do to JSF inputtext?ajax 对 JSF inputtext 做了什么?
【发布时间】:2012-11-04 09:26:13
【问题描述】:

我有一个接受名称的输入文本框,以相反的顺序处理名称,然后将其输出到另一个文本框。每当我输入值并单击页面上的任意位置(意味着文本框失去焦点)时,输出文本框都会自动更新。

当我打开源代码时,我发现类似下面的代码,我可以知道ajax 对 inputtext 组件有什么作用吗?

<h:inputText id="name" value="#{helloBean.name}">
  <f:ajax render="printMyName"/>
</h:inputText>

<h:outputText id="printMyName" value="#{helloBean.reverseName}"/>

【问题讨论】:

    标签: ajax jsf-2


    【解决方案1】:

    取自Learning JSF2: Ajax in JSF – using f:ajax tag

    发送 Ajax 请求

    JSF自带一个标签来发送Ajax请求,这个标签叫做 f:阿贾克斯。这个标签实际上是一个客户端行为。作为一种行为 意味着它永远不会在页面上单独使用,它总是被添加 作为子标签(行为)到另一个 UI 组件(甚至可以包装 几个组件)。让我们用一个小的 echo 应用来演示 这个标签的用法。

    <h:form> 
      <h:panelGrid> 
          <h:inputText value="#{bean.text}" > 
             <f:ajax event="keyup" render="text"/> 
          </h:inputText> 
          <h:outputText id="text" value="#{bean.text}" /> 
       </h:panelGrid> 
    </h:form>
    

    上面的代码 sn-p 负责根据 onkeyup 事件触发 Ajax 请求。请注意,实际的事件名称是 keyup。这负责触发 Ajax 请求。接下来我们需要弄清楚如何进行局部视图渲染。

    属性描述事件:

    Ajax 请求的事件字符串 被解雇了。如果未指定,则基于父组件的默认行为 将被应用。默认事件是 ActionSource 的动作(即: button) 组件和用于 EditableValueHolder 组件的 valueChange (即:输入)。 action 和 valueChange 是实际的 String 值,可以 被应用事件属性。

    【讨论】:

    • 我可以通过编程方式添加 ajax 吗?我正在通过扩展 HtmlInputText 来提交我的自定义输入。我想知道值何时发生变化。这会很有帮助。
    • 如果你正在扩展一个已经有 ajax 的现有组件,那么你也将在你的扩展组件中使用 ajax,无论如何你最好提出一个新问题
    猜你喜欢
    • 2011-12-22
    • 1970-01-01
    • 2011-06-15
    • 2019-12-28
    • 2015-02-06
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    相关资源
    最近更新 更多