栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSF 2:如何在同一输入中显示不同的ajax状态?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSF 2:如何在同一输入中显示不同的ajax状态?

Ajax4jsf

onbegin
oncomplete
属性只是
onevent
JSF2标准
<f:ajax>
标记的现有属性的额外抽象。您只需要引入一些额外的Javascript代码即可实现相同的功能。

这是一个启动示例:

<h:form>    <h:panelGrid columns="3">        <h:outputLabel for="input1" value="Input 1" />        <h:inputText id="input1" value="#{bean.input1}" required="true"> <f:ajax event="blur" render="input1_message" onevent="showProgress" />        </h:inputText>        <h:message id="input1_message" for="input1" />        <h:outputLabel for="input2" value="Input 2" />        <h:inputText id="input2" value="#{bean.input2}" required="true"> <f:ajax event="blur" render="input2_message" onevent="showProgress" />        </h:inputText>        <h:message id="input2_message" for="input2" />        <h:panelGroup />        <h:commandButton value="Submit" action="#{bean.submit}"> <f:ajax execute="@form" render="@form" />        </h:commandButton>        <h:messages globalonly="true" layout="table" />    </h:panelGrid></h:form>

这是该

showProgress
功能的基本启动示例。该
data
参数是一个JS对象,其属性已在JSF规范的表14-4和14-3中进行了描述。

function showProgress(data) {    var inputElement = data.source; // The HTML DOM input element.    var ajaxStatus = data.status; // Can be "begin", "success" and "complete"    var messageForInputElement = document.getElementById(inputElement.id + "_message");    switch (ajaxStatus) {        case "begin": // This is called right before ajax request is been sent. messageForInputElement.innerHTML = "validating..."; break;        case "complete": // This is called right after ajax response is received. messageForInputElement.innerHTML = ""; break;        case "success": // This is called when ajax response is successfully processed. if (messageForInputElement.innerHTML.length == 0) { // So, no message has been set.     messageForInputElement.innerHTML = "valid!"; } break;    }}

您可以用

innerHTML
图像代替此启动示例的示例,或者在使用CSS背景图像的message元素上添加/删除CSS样式类,等等。这对于保持跨浏览器的兼容性并不是很简单。我建议在其中扔一些jQuery。

基本上,Ajax4jsf的

onbegin
oncomplete
属性消除了您必须编写带有的整个JS函数
switch
以实现所需功能的需要。你可以只直接涉及一些Javascript函数里面做一样的线
case
的语句
switch
。这只是一个额外的抽象。您可能要考虑使用它,以使样板代码的数量最小化。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号