2012-09-24 98 views
1

我有一个基于JSF 1.2的Servlet。如果用户闲置一段时间,我会进行会话失效。我必须在会话失效发生前1分钟向用户显示一个jquery对话框,并询问用户是否想要继续或注销。在所有的xhtml页面中包含一个xhtml页面

我有一个XHTML页面(session.xhtml)中的Jquery对话框的代码。我的网络应用程序中有近15-20页。用户可以在15-20页的任何页面中保持空闲状态。所以,我需要在所有的xhtml页面中包含session.xhtml页面。我通过在我的所有页面中使用下面的一段代码来做到这一点。

<ui:insert> 
<ui:include src="/session.xhtml" /> 
</ui:insert> 

我在这里有2个问题。

一)由于网页数量的增长在我的web应用程序,我需要不断地添加上面的代码到每一页

B)代码的可维护性:倒行,如果有一个人有开发一些网页在我的web应用程序中,他可能不记得包含上面的代码

所以,问题是,有什么办法可以把这个页面(说一些在哪里在web.xml或一些XML文件)通过其中默认情况下,这个session.xhtml将可用于我的Web应用程序中的所有页面?

+0

对此有何帮助? –

+0

“基于JSF 1.2的servlet”究竟是什么?这个短语在你的问题开始时并不完全意义。 JSF只有一个[servlet](http://stackoverflow.com/tags/servlets/info),'FacesServlet',它是前端控制器。您作为开发人员通常应该只编写视图(JSP/XHTML文件)和模型(支持bean类)。 – BalusC

+0

相关:http://stackoverflow.com/questions/4792862/how-to-include-another-xhtml-in-xhtml-using-jsf-2-0-facelets – BalusC

回答

1

视图文件可能有一个模板(这是一个很好的做法):

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:a="http://richfaces.org/a4j" 
       ... 
       template="../layout/maintemplate.xhtml"> 

你可以将常用的逻辑到maintemplate.xhtml。 希望这有助于。

+0

您的解决方案比我在文章中提到的要好。代替编写3行代码,您的解决方案需要1行代码。但是,问题依然存在。这1行代码必须放在所有的xhtml页面中。我正在寻找一种将该页面放入一些faces-config.xml或web.xml(我不确定)的方式,它将应用于所有的xhtml页面。让我知道是否可以找到解决方案。 –