在所有xhtml页面中包含一个xhtml页面

时间:2012-09-24 04:26:46

标签: jsf facelets jsf-1.2

我有一个基于JSF 1.2的Servlet。如果用户闲置一段时间,我会做会话失效。我必须在会话失效发生前1分钟向用户显示一个Jquery对话框,并询问用户是否要继续或注销。

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

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

我这里有两个问题。

a)随着我的网页应用程序中页面数量的增长,我需要继续为每个页面添加上述代码

b)代码可维护性:如果其他人必须在我的网络应用程序中开发一些页面,他可能不记得包含上面的代码

所以,问题是,有没有什么方法可以把这个页面(比如在web.xml或某些xml文件中的某些位置),默认情况下,这个session.xhtml可用于我的网页中的所有页面应用

1 个答案:

答案 0 :(得分: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中。 希望这有帮助。