php cdi_涉及CDI和JSF的过期对话的定制错误页面

php cdi

自上次写博客以来已经有一段时间了。 我一直在想写一些技术博客,但最终却忙于其他事情。 上周,在Coderanch论坛上进行了非常有趣的讨论。 甚至更有趣,因为它涉及JBoss。

熟悉Java EE Web应用程序的开发人员会知道,Web应用程序部署描述符(web.xml)允许您指定当服务器抛出特定异常(类)或错误代码时容器将显示的“错误页面”,一个网络请求。 这是一个简短的示例:

<web-app>  ...  <!-- A custom error page for error code == 500 -->  <error-page>   <error-code>500</error-code>   <location>/my-foo-bar-500-page.html</location>   </error-page>   <!-- A custom error page for exception type org.myapp.foo.bar.MyException -->  <error-page>   <exception-type>org.myapp.foo.bar.MyException</exception-type>   <location>/my-foo-bar-exception-page.html</location>   </error-page>   ...  </web-app>

足够简单–分别为特定错误代码和异常类型定义的几个自定义错误页面。 所有这些都很好。 目前,在开发Web应用程序时,越来越多的编程模型和框架出现在人们的视野中。 CDI和JSF就是其中一些。 CDI具有范围的概念(例如:请求范围,会话范围,应用程序范围,会话范围)。 我们不会详细介绍它们的含义以及何时使用它们,但是让我们考虑一下此Blog中的对话范围,因为这正是促使该Blog的论坛主题中的讨论内容。

因此,CDI允许多个请求成为“对话范围”的一部分。 对话具有“开始”和“结束”,两者都可以由应用程序管理。 当应用程序涉及JSF时,任何对话(id)都会自动传播到JSF请求。 除了明确的对话开始/结束界限外,对话也可能超时。 涉及对话已结束或超时的请求将遇到异常。

因此,我们知道CDI对话范围有一些背景。 因此,让我们考虑一种情况,当引发“不再存在的对话”异常(可能是由于超时)时,应用程序希望呈现美观的页面。 我们已经看到了如何为错误页面配置编写一个web.xml,它很简单:

<web-app>  ...  <!-- A custom error page for exception type org.jboss.weld.context.NonexistentConversationException -->  <error-page>   <exception-type>org.jboss.weld.context.NonexistentConversationException</exception-type>   <location>/my-foo-bar-exception-page.html</location>   </error-page>   ...  </web-app>

很简单。 org.jboss.weld.context.NonexistentConversationException是异常类类型,当会话超时时会抛出该异常类(请注意,我们假设Web应用程序依赖于Weld作为CDI规范实现库)。 上面的配置工作正常。 抛出org.jboss.weld.context.NonexistentConversationException时,将显示my-foo-bar-exception-page.html。 但是,现在让我们考虑,就像我们应用程序的其他部分一样,我们希望在错误页面中包含JSF。 因此,让我们将错误页面指向映射到JSF servlet的URL模式:

请注意,我们将'nocid'参数作为错误页面位置的查询字符串的一部分传递。 “ nocid”参数的值实际上并不重要,但是为了保持该值的逻辑性,我们在这里使用了“ true”值。 完成此更改后,您将开始注意到错误页面(由JSF支持)现在可以正确呈现!

我们花了一段时间才在该论坛线程中获得此解决方案,因为它看起来很简单,应该可以“正常工作”,但事实并非如此。这是我一直在谈论的Coderanch论坛线程 。 感谢Greg Charles找出如何传递nocid参数。

参考:在Jaikiran My Wiki博客上,来自我们的JCG合作伙伴 Jaikiran Pai的涉及CDI和JSF的过期对话的自定义错误页面 。

翻译自: https://www.javacodegeeks.com/2013/01/custom-error-pages-for-expired-conversations-involving-cdi-and-jsf.html

php cdi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

石家庄计算机职业学院张秋玉,九龙坡有什么大学

2019九龙坡有哪些大学&#xff1f;九龙坡所有大学名单【教育部最新8所】九龙坡有哪些大学是广大考生和家长朋友们比较关心的&#xff0c;以下是教育部最新公布的九龙坡所有大学名单&#xff0c;包含一本、二本、三本和大专总共8所大学&#xff0c;仅供参考。2019九龙坡大学名单…

struts2.3.4 问题

原问题为&#xff1a;严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 详细请参见http://q.cnblogs.com/q/38309/ 刚开始以为是struts2.3.4的问题&#xff0c;但最终发现为…

Java虚拟机(JVM)简介

什么是JVM Java虚拟机&#xff08;JVM&#xff09;是使计算机能够运行Java程序的抽象计算机。 JVM有三个概念&#xff1a; 1.规格 2.实施 3.实例。 该规范是正式描述JVM实现要求的文档。 具有单一规范可确保所有实现都可互操作。 JVM实现是满足JVM规范要求的计算机程序。 …

武汉数字工程研究所计算机软件分数,武汉数字工程研究所2017考研成绩查询时间:2月16日...

2017考研复试调剂群 460216643一、成绩公布湖北省2017年全国硕士研究生招生考试成绩由各招生单位公布&#xff0c;湖北省教育考试院于2017年2月16日在官网上公布统考科目成绩。武汉数字工程研究所2017考研成绩查询时间&#xff1a;2月16日二、成绩复核考生如对成绩有异议&#…

符号英语

plus 加号&#xff1b;正号 -  minus 减号&#xff1b;负号  plus or minus 正负号  is multiplied by 乘号  is divided by 除号 &#xff1d; is equal to 等于号 ≠ is not equal to 不等于号 ≡ is equivalent to 全等于号 ≌ …

408计算机考研大纲 doc,2020计算机专业408基础综合考研大纲

研究生考试信息&#xff0c;欢迎访问北京研究生招生信息网。考试大纲是我们每个考研的学生所强烈关注的&#xff0c;因为考试大纲里所公布的内容&#xff0c;是我们复习过程中必须掌握的。随着考研大军逐年壮大&#xff0c;竞争力越来越强。我们可以发现&#xff0c;虽然几乎每…

兰花三七

中文名称&#xff1a;兰花三七 拉丁学名&#xff1a;Liriope cymbidiomorpha (ined) 别称&#xff1a;小叶麦冬 科目&#xff1a;百合科、植物界 生长环境&#xff1a; 耐寒、耐热性均好&#xff0c;可生长于微碱性土壤&#xff0c;对光照适应性强。 主要价值&#xff1a; 夏季…

play!框架_在Play上使用twitter4j! 框架和安全社交很容易

play!框架在昨天的个人黑客马拉松期间&#xff0c;我启动了一个项目&#xff0c;我可能会在这里介绍。 但是&#xff0c;最酷的启示是&#xff08;再次&#xff09;启动和运行起来有多么容易。 创建一个新的Play项目 添加Secure Social并为Twitter配置它&#xff0c;并使用示…

目前个人计算机使用的电子电路主要是,计算机基础知识理论题库.xls

文档介绍&#xff1a;计算机基础知识理论题库_题源章题目 ABCD答案提示 2007ZN MK1 对两个二进制数 1与1分别进行算术加、逻辑加运算,其结果用二进制形式分别表示为________ 。1、 101、1 10、1 10、 10 C 2007 秋 JYBD 1 移动通信系统中关于移动台的叙述正确的是_____ 。移动台…

消失之物

几种方法 容斥&#xff0c;时间二分&#xff0c;dp数据结构强艹&#xff0c;主席树 不要拘泥自己思路&#xff0c;思路放开其实不难 主要讲容斥和时间二分 容斥&#xff08;其实不是容斥&#xff0c;只是类似于容斥&#xff09; 我们算出来总值&#xff0c;然后减去当前贡献即可…

JSON处理1.1:100DaysOfJavaEE8

JSON指针挑战 给定下面代码片段中的JSON文档&#xff0c;使用JSON-P 1.1中的JSON指针功能会得到什么结果&#xff1f; JSON对象的新形状如下&#xff1a; {"name": "Duke","likes": ["Java EE 8","Java","Ice Cream…

航天信息计算机设备如何入账,​收到航天信息发票账务处理

收到航天信息发票账务处理航天信息给开的发票是用于税控软件的,可以进入管理费用(不入固定资产)并予以抵扣.1、税控设备不管金额大小可以直接列入管理费用,不用列入固定资产;应缴税费科目没有待抵扣进项税子目,习惯上在待摊费用科目核算,分录借:管理费用-办公费待摊费用-待抵扣…

公用机房计算机主板选购,才知道,IDC机房运维工作居然可以如此简单!

原标题&#xff1a;才知道&#xff0c;IDC机房运维工作居然可以如此简单&#xff01;机房运维事情比较多且繁琐&#xff0c;每一个细节都要做到标准、专业和完美&#xff01;如何将繁琐的机房运维简化&#xff0c;就从这几点开始&#xff01;机房运维关于电力定期检测机房内市电…

postman接口自动化

文档&#xff1a;postman接口自动化.note链接&#xff1a;http://note.youdao.com/noteshare?id3b00660bc661504c622c147dc5437af6&sub3FF2993B85AB46C0976CA2E76E594461转载于:https://www.cnblogs.com/Mezhou/p/11279465.html

primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)

primefaces最近&#xff0c;我的朋友问我如何构建轻量级的Java Web应用程序。 许多Java Web开发人员会选择Spring和Hibernate来构建传统的Web应用程序。 但是&#xff0c;它可能不够轻巧。 我建议他尝试使用Guice和MyBatis构建应用程序框架。 尽管Spring比Guice功能更丰富&…

北语19秋计算机应用基础作业答案,北语18秋《计算机应用基础》练习1满分答案...

1 在微型计算机的各种设备中 既可输入又可输出的设备是 A 磁盘驱动器磁盘驱动器 B 键盘 C 鼠标 D 绘图仪 2 在 PowerPoint 的大纲窗格中输入文本 则 A 该文本只能在幻灯片视图中修改 B 既可以在幻灯片视图中修改文本 也可以在大纲视图中修改文本既可以在幻灯片视图中修改文本 也…

463个生活小窍门

1、巧用牙膏6&#xff1a;若有小面积皮肤损伤或烧伤、烫伤&#xff0c;抹上少许牙膏&#xff0c;可立即止血止痛&#xff0c;也可防止感染&#xff0c;疗效颇佳。 2、巧除纱窗油腻3&#xff1a;可将洗衣粉、吸烟剩下的烟头一起放在水里&#xff0c;待溶解后&#xff0c;拿来擦玻…

是否可以在最终课程中使用抽象方法?

这是最近在Java开发人员工作面试的电话面试中向我的一位读者提出的有趣的Java核心问题之一。 即使他知道你 无法用Java将抽象类定型为final &#xff0c;他对方法的措辞感到困惑。 答案很简单&#xff0c;不&#xff0c;在Java的最终类中不可能有抽象方法。 为什么&#xff1f…

重庆大学校友会计算机,资环学院联谊会隆重举行

2011年11月5日&#xff0c;重庆大学北京校友会资源及环境科学学院联谊会在北京京师大厦隆重举行。本次联谊会由重庆大学北京校友会主办&#xff0c;重庆大学资环学院协办&#xff0c;费用由82采矿段建国和82管理孙国敏共同资助&#xff0c;得到了学校领导的高度重视和众多校友的…

小学计算机三年级课程目录,小学生信息技术课本目录.doc

小学生信息技术课本目录三年级上册第1课  生活中的信息技术第2课  电脑能干什么第3课  电脑的组成第4课  爱护电脑设备第5课  正确使用电脑第6课  认识桌面第7课  让鼠标动起来第8课  认识电脑键盘第9课  使用记事本第10课  基准键操作第11课  上行键操作第12课  下…