ajax对JSF输入文本做了什么?

hua*_*n68 1 ajax jsf-2

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

当我打开源代码时,我发现下面的代码,我可能知道ajax对inputtext组件做了什么?

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

<h:outputText id="printMyName" value="#{helloBean.reverseName}"/>
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 5

摘自学习JSF2:JSF中的Ajax - 使用f:ajax标记

发送Ajax请求

JSF附带一个标签来发送Ajax请求,标签名为f:ajax.此标记实际上是客户端行为.作为一种行为意味着它永远不会仅仅在页面上使用它,它总是作为子标记(行为)添加到另一个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>
Run Code Online (Sandbox Code Playgroud)

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

属性描述事件:

将触发事件Ajax请求的字符串.如果未指定,将应用基于父组件的默认行为.默认事件是ActionSource(即:按钮)组件的操作和EditableValueHolder组件的valueChange(即:输入).action和valueChange是可以应用的实际String值应用的事件属性.