【问题标题】:JSF faces-config.xml with external navigation-rules *.xml file带有外部导航规则 *.xml 文件的 JSF faces-config.xml
【发布时间】:2013-10-09 16:30:24
【问题描述】:

我的 faces-config.xml 里面有很多导航规则,所以我想知道是否有机会编写一个仅包含导航规则的外部 xml,然后将该 nav-rules.xml 导入 faces-config .xml。

我想保持我的面孔配置结构良好,因为很多导航规则使它太长了。

提前谢谢你!!!

【问题讨论】:

  • 如果你使用的是 JSF 2.X 版本,你最好超越它,让你的 backing-beans/facelets 代替。

标签: jsf faces-config


【解决方案1】:

是的,可以将 webapp 自己的 /WEB-INF/faces-config.xml 文件的内容拆分为多个文件。您只需更改 web.xml 以指定 javax.faces.CONFIG_FILES 上下文参数,并使用逗号分隔的 webcontent-relative 路径指向所有外部文件:

<context-param>
    <param-name>javax.faces.application.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/navigation-config.xml</param-value>
</context-param>

或者,如果您已经在使用 JSF 2.x,那么您也可以通过利用 JSF 2.0 新的隐式导航功能完全摆脱所有导航情况。 IE。只需将from-outcometo-view-id 完全相同,就像return "/result.xhtml";return "/result"; 而不是return "success";。这样整个导航箱就变得多余了,可以从faces-config.xml中删除。

【讨论】:

  • 感谢您的支持。我决定在 faces-config 上管理导航规则,因为我的合作伙伴可以更改 .jsf 文件的名称,并且在 xml 中保留规则可能更容易维护,而不是更改我设置规则的每个结果(“即 /result”)。谢谢,这个答案帮助了我,它现在正在工作!!!
  • 无论如何,这仍然没有正确设计的应用程序的味道。另请参阅stackoverflow.com/a/15523045
【解决方案2】:

可以在运行时整理多个 faces-config.xml 文件。因此,您可以创建一个 faces-config.xml 文件并将其存储在某个 jar 中的 META-INF/faces-config.xml 文件中,它会在运行时被拾取。

您决定将原始文件的哪些部分放入其中。

【讨论】:

  • 你的意思是用另一个 faces-config.xml 创建一个 .jar 吗?我认为,我需要在开发和生产环境中将这个 .jar 设置到我的类路径中。还是我误会了?
  • 没错。假设您正在构建模块化的代码片段……因此您可能会将所有模块的 jar 包拉入您的最终应用程序中。在这种情况下,您可以将该模块的 JSF 声明保存在 faces-config.xml 文件中,该文件打包在该模块的 jar 文件中。希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
相关资源
最近更新 更多