Web将开发分成前端和后端两部分,两端的代码就有了各种交互的需要和模式。前端的Javascript进行校验和界面操作,业务逻辑则在服务器上运行。早期两者交互的模式是,前端脚本完成校验后提交,服务器运行业务逻辑后,转向另一页面或者更改原页面的显示。Ajax流行之后,前端的Javascript以不刷新页面的方式提交后等待服务器的结果再更新页面。在更新页面部分又可以分为两种情况,一种是较为普遍的服务器返回少量运行结果,Javascript在浏览器中根据这些结果修改HTML;另一种是XPages采用的方式,它基于的JSF在一个页面的生命周期里已经包含生成HTML的阶段,显示的更改是在服务器而不是浏览器中完成的,Javascript只是负责将指定了id的某个节点的HTML替换掉。
一个Web应用中,在诸如保存和提交成功之类的情况下,页面没有变化,显示也差别不大,有时就需要额外提示用户上一个操作的结果。这时候可以简单在返回的页面中利用alert()函数弹出窗口(较早的做法),也可以更温和地在页面的某一部分用特殊的背景和字体显示消息(当前流行的做法)。这两种方法在XPages下都很容易实现。
方案一:下面在一个按钮的单击事件中先执行业务逻辑,然后在返回的页面中弹出提示。
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript://Business logic goes here.
view.postScript("alert('done')"); }]]>
</xp:this.action>
</xp:eventHandler>
</xp:button>
postScript是XPages为view对象建立的一个很有趣且有用的方法,它会将参数中的脚本传递到前端执行。
方案二:在页面上添加一个用于显示操作结果的计算文本(这里使用的风格是粗体黑字黄色背景色),它的值绑定到requestScope.message。同样在按钮中执行完业务逻辑后,将状态传入requestScope.message。
<xp:div style="text-align:center">
<xp:text escape="true" id="message" contentType="html" value="#{requestScope.message}" style="background-color:rgb(255,255,0);font-weight:bold"></xp:text>
</xp:div>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript://Business logic goes here.
requestScope.put("message", "done");}]]>
</xp:this.action>
</xp:eventHandler>
</xp:button>
如果业务逻辑是在Bean中用Java编写,也能够很方便地实现上述两种方案:
UIViewRootEx2 view=(UIViewRootEx2) FacesContext.getCurrentInstance().getViewRoot();
view.postScript("alert('done')");
FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("message", "done");
可以看到上面服务器端Javascript中的view是一个Java的UIViewRootEx2对象,是XPages将JSF的ViewRoot接口扩展而成的,仍然从FacesContext实例的getViewRoot方法获得。
分享到:
相关推荐
xpages repeat在ul中重复li,一看就懂的教程,不懂就复制代码
domino xpages 连接MS SQL成功示例
domino xpages servlet在xpages使用教程
XPages开发
以前收藏的一些html, xpages,xpages主题分析引用css和js的区别,今天分享出来,以方便大家更清楚的了解主题的引用js和css
A Compact Resource to XPages Application Development and the XSP Language
每每听到某企业又更换domino平台成java或.net平台时,总会有些特别的滋味,因为...开发接触的知识点收集、归纳、串联来讲,希望能为想学习xpages的同学做个引入门的作用,更深的知识还是在自己的实际运用开发中提高。
《精通XPages:XPages应用开发和XSP语言权威指南》是一本介绍如何使用XPages进行Web开发的书,书中使用了大量图示和代码清单来帮助读者理解XPages的各种性能和属性,旨在让读者能够快速、有效地解决工作中的实际问题...
xpages repeat 显示序号,这个是非常实用的功能,这个实现就是这样的
ibm domino xpages jdbc范例
domino xpages URL中文传值
精通Xpages书本的配套练习题 其他的无。
XPages访问关系型数据库的方法介绍PPT
domino xpages 文档状态改变.
模板资料库文件,本实例系统介绍xpages的功能及用法,具有十分重要的参考价值.
为了刚接触xpages的朋友写一些文档,这是以前收集的,以后会陆续把一些资料上来,请关注。在视图在怎么获取选择的文档,以及获取后怎么处理,这是非常实用的功能,但在帮助或百度是难找到的,所以与大家一起分享。
xpages多平台的开发(支持手机、平板、桌面), 分别介绍xpages引入jquery、bootstrap等其它UI引入, 拓展xpages的应用。
domino xpages 开发 视图View Start Key
视图打开文档超连接是在本页面跳转,想在视图把文档的连接在新窗口打开,花了很多时间,当终于有一天理解xpages最终成html显示时,想通了,最终用html去理解xpages就可以打开思路了,这为在xpages中做其它功能的实现...
《玩转XPages开发》配套资源,非常有用!!