3

BalusC の優れた記事に基づいて複合コンポーネントを作成しようとしていました。バッキング コンポーネントから属性や値を取得できませんでした。コード:

<?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:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:composite="http://java.sun.com/jsf/composite">

<composite:interface componentType="test">
    <composite:attribute name="something" />
</composite:interface>

<composite:implementation>
    <h:outputText value="#{composite.attrs.something}" />
    <h:outputText value="#{composite.hello}" />
</composite:implementation>
</html>

同じコードが機能することがわかったので、「composite」の代わりに「cc」名前空間を使用します。コード:

<?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:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:cc="http://java.sun.com/jsf/composite">

<cc:interface componentType="test">
    <cc:attribute name="something" />
</cc:interface>

<cc:implementation>
    <h:outputText value="#{cc.attrs.something}" />
    <h:outputText value="#{cc.hello}" />
</cc:implementation>
</html>

問題は、「複合」名前空間で機能しないのはなぜですか? 「複合」がJSFの予約語か何かであるという情報は見つかりませんでした。

ありがとう。

4

1 に答える 1