首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSF组合组件打包到JAR中

将JSF组合组件打包到JAR中
EN

Stack Overflow用户
提问于 2018-01-31 02:31:25
回答 1查看 669关注 0票数 5

在尝试将我们的复合组件捆绑到jar中并作为依赖项包含在另一个项目中时,我遵循了following answer

这对除复合组件实现以外的所有组件都有效。我们公共项目的文件夹结构如下所示:

代码语言:javascript
复制
CommonWebProject
 |-- META-INF
 |    |-- resources
 |    |    `-- common
 |    |         |-- css
 |    |         |    ...
 |    |         |-- js
 |    |         |    ...
 |    |         |-- components
 |    |         |    `-- comment.xhtml
 |    |         |-- templates
 |    |         |    `-- defaultTemplate.xhtml
 |    |-- faces-config.xml
 |    `-- MANIFEST.MF
 :

comment.xhtml由以下部分组成:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:composite="http://java.sun.com/jsf/composite">

<composite:interface>

</composite:interface>

<composite:implementation>
  <p>TESTING!</p>
</composite:implementation>

</html> 

实际的实现如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
  <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:csxc="http://java.sun.com/jsf/composite/csxcomponent" xmlns:p="http://primefaces.org/ui"
    xmlns:common="http://java.sun.com/jsf/composite/common"
    template="/common/templates/defaultTemplate.xhtml">
    <ui:define name="head">
    </ui:define>

    <common:comment/>

  </ui:composition> 

在这里,从普通jar中拉出的模板"defaultTemplate.xhtml“工作正常,但标签却无法正常工作。检查页面只会显示标签。

你知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 15:38:51

代码语言:javascript
复制
CommonWebProject
 |-- META-INF
 |    |-- resources
 |    |    `-- common
 |    |         |-- components
 |    |         |    `-- comment.xhtml
 :    :         :

因此,资源相对路径是/common/components/comment.xhtml

然而,

代码语言:javascript
复制
xmlns:common="http://java.sun.com/jsf/composite/common"
...
<common:comment />

XML名称空间基本上表示comment.xhtml位于/common文件夹内。它实际上不在那里。它实际上在/common/components文件夹中。

对齐它。

代码语言:javascript
复制
xmlns:common="http://java.sun.com/jsf/composite/common/components"
...
<common:comment />

同时,我已经修复了你在那里找到的答案。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48528237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档