1

我正在尝试将应用程序层代码与 JSF 2.0 Web 应用程序中的视图层 html、css、js 分离。

应用程序的视图层将是一个已部署的具有标准结构的 WAR 文件。

Java 代码将位于 Weblogic 部署的库中(由 WEB-INF/weblogic.xml 中的战争引用)。这将仅包含类文件以及许多必需的 jar。

我不希望在视图层工作的人直接连接到应用程序层。我可以在引用库的 faces-config.xml 中包含应用程序的 faces-config.xml 规范吗?其中包括:异常处理程序工厂、资源包引用、el-resolvers、侦听器、render-kit 等。

应用结构
    -应用层库
        -META-INF
            -faces-config.xml???
        -WEB-INF
            -类
            -lib(这里是罐子)
            -web.xml
    -View-Layer 应用程序
        -META-INF
        -WEB-INF
            -faces-config.xml
            -web.xml
            -weblogic.xml
            -weblogic-application.xml
         -其他文件夹

抱歉,如果这还不够清楚,我在 Stack Overflow 上的第一个问题!如果我能澄清任何事情,请随时告诉我。

4

1 回答 1

0

是的,这是可能的。

您可以拥有一个独立于视图层的公共、配置和 java 代码的应用程序库。在这个 jar(库)中,您将所需的所有内容放在 JSF 配置文件中,(faces-config.xml)位于src/META-INF/faces-config.xml. 在我的情况下,我在这个配置文件中有异常处理程序工厂、资源包引用、el-resolvers、侦听器,并且在 weblogic 中没有任何问题。

但是,有一些问题需要注意。例如,覆盖第三部分、渲染器或组件。

需要覆盖 3rd 方组件库的渲染器的自定义渲染器需要在 webapp 自己的 faces-config.xml 中注册,而不是在 faces-config.xml 中注册,后者也打包在 /WEB-INF/lib 中的另一个 JAR 中。JAR 文件的加载顺序未指定,因此可能会在您想要覆盖的第 3 方组件库之一之前加载和注册自定义渲染器,就像您所面对的那样。

我希望,这能解决你的一些疑问......

于 2014-05-26T15:14:38.603 回答