从其他位置(数据库,http ...)加载JSF facelets文件(模板,视图)

时间:2012-10-06 11:09:53

标签: java jsf-2 facelets

我正在建立一个研究小组内部管理网站。该网站背后的概念是任何人都可以加载包含要包含在网页中的信息的字段和格式的数据模型。 此外,我有一组视图(用于管理不同的数据模型)和一组模板(HTML4,HTML5,移动/平板设备的不同形式因素)。

我使用mongo作为数据库。

网站以网址为中心。用户定义网页并在网站可用的网址空间范围内为其分配URL。因此,当请求到达网站时,视图提供者会为请求分配视图(并且视图在代码中对模板进行了硬编码)。

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:ply="http://java.sun.com/jsf/composite/pervasive/layout"
template="/WEB-INF/templates/siteconfiguration/datamodelloader.tmpl.jspx">

如上例所示,我将视图和模板都存储在WEB-INF文件夹中,我希望将它们存储在数据库的不同集合中。我想告诉JSF它们在哪里或者为JSF提供包含模板和视图的输入流或字节数组,而不是将它们放在WEB-INF文件夹中。通过这种方式,我可以更方便地编辑,删除或更新它们。

然而,我迷路了。你能帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以注册一个自定义ResourceResolver(另请参阅this答案)并使其指向一个servlet,它将返回一个动态生成(或从DB获取)视图。