第一个最简单的复合组件不起作用。 JSF

时间:2010-06-19 11:46:08

标签: java jsf

我正在学习本教程: -

http://blogs.oracle.com/enterprisetechtips/entry/true_abstraction_composite_ui_components

但它不适合我。

这是我的index.xhtml: -

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ez="http://java.sun.com/jsf/composite/simpleout">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
         <ez:loginPanel>

         </ez:loginPanel>
    </h:body>
</html>

这是我在WEB-INF/resources/simpleout

中的out.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:composite="http://java.sun.com/jsf/composite">
<head>
<title>This will not be present in rendered output</title>
</head>
<body>

<composite:interface>
    <composite:attribute name="value" required="false"/>
</composite:interface>

<composite:implementation>
    <h:outputText value="#{cc.attrs.value}" style="background-color: yellow"/>
</composite:implementation>
</body>
</html>

我总是收到这个错误: -

•Warning: This page calls for XML namespace http://java.sun.com/jsf/composite/simpleout declared with prefix ez but no taglibrary exists for that namespace. 

请帮帮我。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

复合组件确实属于Web根目录中的目录资源,而不属于WEB-INF。其他一切似乎都是正确的。在我看来,将资源放在WEB-INF下会更有意义,因为浏览器不应该访问它,但这似乎是规范所说的。