首页前端开发HTML15. 如何在XPages中提示操作成功

15. 如何在XPages中提示操作成功

时间2024-01-25 11:07:45发布访客分类HTML浏览503
导读:收集整理的这篇文章主要介绍了html5教程-15. 如何在XPages中提示操作成功,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 Web将开发分...
收集整理的这篇文章主要介绍了html5教程-15. 如何在XPages中提示操作成功,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 Web将开发分成前端和后端两部分,两端的代码就有了各种交互的需要和模式。前端的Javascript进行校验和界面操作,业务逻辑则在服务器上运行。早期两者交互的模式是,前端脚本完成校验后提交,服务器运行业务逻辑后,转向另一页面或者更改原页面的显示。Ajax流行之后,前端的Javascript以不刷新页面的方式提交后等待服务器的结果再更新页面。在更新页面部分又可以分为两种情况,一种是较为普遍的服务器返回少量运行结果,Javascript在浏览器中根据这些结果修改HTML;另一种是xpages采用的方式,它基于的JSF在一个页面的生命周期里已经包含生成HTML的阶段,显示的更改是在服务器而不是浏览器中完成的,Javascript只是负责将指定了id的某个节点的HTML替换掉。

 

一个Web应用中,在诸如保存和提交成功之类的情况下,页面没有变化,显示也差别不大,有时就需要额外提示用户上一个操作的结果。这时候可以简单在返回的页面中利用alert()函数弹出窗口(较早的做法),也可以更温和地在页面的某一部分用特殊的背景和字体显示消息(当前流行的做法)。这两种方法在XPages下都很容易实现。

 

方案一:下面在一个按钮的单击事件中先执行业务逻辑,然后在返回的页面中弹出提示。

 

[html]  

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。

 

[html]  

xp:p 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:p>  

  

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编写,也能够很方便地实现上述两种方案:

 

[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方法获得

Web将开发分成前端和后端两部分,两端的代码就有了各种交互的需要和模式。前端的Javascript进行校验和界面操作,业务逻辑则在服务器上运行。早期两者交互的模式是,前端脚本完成校验后提交,服务器运行业务逻辑后,转向另一页面或者更改原页面的显示。Ajax流行之后,前端的Javascript以不刷新页面的方式提交后等待服务器的结果再更新页面。在更新页面部分又可以分为两种情况,一种是较为普遍的服务器返回少量运行结果,Javascript在浏览器中根据这些结果修改HTML;另一种是XPages采用的方式,它基于的JSF在一个页面的生命周期里已经包含生成HTML的阶段,显示的更改是在服务器而不是浏览器中完成的,Javascript只是负责将指定了id的某个节点的HTML替换掉。

 

一个Web应用中,在诸如保存和提交成功之类的情况下,页面没有变化,显示也差别不大,有时就需要额外提示用户上一个操作的结果。这时候可以简单在返回的页面中利用alert()函数弹出窗口(较早的做法),也可以更温和地在页面的某一部分用特殊的背景和字体显示消息(当前流行的做法)。这两种方法在XPages下都很容易实现。

 

方案一:下面在一个按钮的单击事件中先执行业务逻辑,然后在返回的页面中弹出提示。

 

[html]  

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。

 

[html]  

xp:p 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:p>  

  

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编写,也能够很方便地实现上述两种方案:

 

[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方法获得

觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

AJAXdivHTMLletMappost-format-gallerythis

若转载请注明出处: 15. 如何在XPages中提示操作成功
本文地址: https://pptw.com/jishu/586449.html
在线绘图插件--wPaint 的实际应用 html5中web存储方式:

游客 回复需填写必要信息