Java 如何在页面配置中创建。Via c:设置?
我有一个web应用程序,需要能够从JSF页面配置部分。例如,假设我的应用程序被分成几个较小的部分,每个部分都有一个文件夹/文件结构,如下所示:Java 如何在页面配置中创建。Via c:设置?,java,jsf,seam,facelets,Java,Jsf,Seam,Facelets,我有一个web应用程序,需要能够从JSF页面配置部分。例如,假设我的应用程序被分成几个较小的部分,每个部分都有一个文件夹/文件结构,如下所示: /partname /config config.xhtml /template generaltemplate.xhtml search.xhtml results.xhtml Search.xhtml和results.xhtml都使用模板文件generaltemplate.xhtml。
/partname
/config
config.xhtml
/template
generaltemplate.xhtml
search.xhtml
results.xhtml
Search.xhtml和results.xhtml都使用模板文件generaltemplate.xhtml。此generaltemplate具有包含config.xhtml内容的。计划是将所有共享配置放入此页面,以便应用程序可以访问它。但我做这件事有困难
如果我在config.xhtml中创建变量,那么它们似乎只能从该配置页面访问。以前,我会根据请求更改范围,这样就可以解决任何问题。但是由于JSF以不同的方式工作,我知道在这种情况下作用域是无用的
有人对我如何在这一页中创建所有配置,然后在整个应用程序中访问它有什么建议吗
此应用程序是使用Seam编写的,因此可以选择使用Seam中的内容。Seam是一个模型视图控制器(MVC)框架。该视图是使用JSF页面实现的。配置是模型的一部分,不应放在页面中
为了实现适当的分层,我建议您将配置放在某种全局可访问的bean中(由Seam实例化,可能是从.properties文件填充的)您可以在JSF页面中引用它。我不知道需要多少重构,但是您可以创建一个范围适当的配置bean,然后使用c:set标记来设置配置bean。然后,在稍后的页面中,您可以使用配置bean,而不是直接访问变量。假设您可以使用facelets,对于c:set问题: 在模板中:
...
<html ...
xmlns:ui="http://java.sun.com/jsf/facelets"
...
<body>
<ui:param name="testParam" value="Test" />
<ui:insert name="test">
</ui:insert>
...
...
<html ...
xmlns:ui="http://java.sun.com/jsf/facelets"
...
<body>
<ui:composition template="/WEB-INF/templates/template.xhtml">
<ui:define name="test">
<h:outputText value="#{testParam}" />
...
。。。
我知道这不是MVC模式的工作方式,我把配置放错地方了。但不幸的是,我的手被这一点束缚住了,我只是在寻找最简单的方法来做我需要做的事情。