巧用Ajax4Jsf的oncomplete事件

笔者在最近的项目中采用的是Jsf(myfaces+richfaces+Ajax4Jsf)+Spring+Hibernate技术,由于数据量大,系统反应时间为1.5~2秒,此时需要有提示的标记比如"正在理..."等。Ajax4Jsf中的"onsubmit"为提交表单时发生的动作,"oncomplete"为提交到服务器端处理完返回到客户端时执行的动作,这两者的时间差就是我们等待的时间。我们也就是要在这个时间段内显示标记。对于<t:commandButton/>或<t:commandLink /> 等可以用"onclick""ondblclick"等与"oncomplete"组合灵活应用。以下是简例片段:

 1<!-- 执行的js方法 -->
 2<script type="text/javascript">
 3    function beforeChange(){
 4        var obj = document.getElementById('myForm:waitingGif');
 5        obj.style.display='block';
 6    }

 7    function afterChange(){
 8        var obj = document.getElementById('myForm:waitingGif');
 9        obj.style.display='none';
10    }

11
</script>
12<!-- 应用 -->
13<t:panelGrid columns="3" id="listGrid" forceId="true">
14    <t:selectOneRadio value="#{myBean.selectItem}">
15        <a4j:support event="onclick"
16            actionListener="#{myBean.selectItemChange}"
17            reRender="listGrid" onsubmit="beforeChange()"
18            oncomplete="afterChange()" />
19        <f:selectItem itemLabel="上月" itemValue="4" />
20        <f:selectItem itemLabel="本月" itemValue="3" />
21        <f:selectItem itemLabel="上周" itemValue="2" />
22        <f:selectItem itemLabel="本周" itemValue="1" />
23    </t:selectOneRadio>
24    <h:graphicImage id="waitingGif" value="/images/waiting.gif" style="display:none" />
25</t:panelGrid>

运行时的显示效果:


其实Ajax4Jsf也有对此效果的支持:
1<a4j:status  startText="正在处理"  startStyle="font-size: 10pt;color:red;"/>

 

来源:http://www.blogjava.net/jakin/archive/2008/01/15/175523.html

 
阅读更多

Uploadify上传onComplete事件问题

06-24

用的是struts2+query1.4+uploadify2.1rn上传都没什么问题rnstruts2返回jsonrnrn就是在处理上传成功事件时rn[code=JScript]rnonComplete: function (event, queueID, fileObj, response, data) rn alert(response);//此处得到结果为 "message","上传OK"rn alert(response.message);// 此处是null....为什么rn   alert("文件:" + fileObj.name + "上传成功");rn  rn[/code]rnrnrnrnrn以下是action代码rn[code=Java]rnpublic class UpLoadAction extends ActionSupportrn private File file;rn private String fileFileName;rn private String message;rn public String getMessage() rn return message;rn rn public void setMessage(String message) rn this.message = message;rn rn public String execute()rn System.out.println("文件名是"+fileFileName+file);rn String root=ServletActionContext.getServletContext().getRealPath("/upload");rn try rn byte[]b=new byte[1024];rn int length;rn InputStream read=new FileInputStream(file);rn OutputStream write=new FileOutputStream(new File(root,fileFileName));//文件名保存为例 rn while((length=read.read(b))!=-1)rn write.write(b, 0, length);rn rn read.close();rn write.close();rn catch (FileNotFoundException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn message="我是服务器";rn return SUCCESS;rn rn public void setFile(File file) rn this.file = file;rn rnrn public void setFileFileName(String fileFileName) rn this.fileFileName = fileFileName;rn rnrnrn[/code]rnrn

没有更多推荐了,返回首页