1

私がやりたいことは、共通のデータ テーブル ヘッダーを複合コンポーネントとして宣言することです。しかし、この答えはレンダリングされていないので、私をまっすぐにしました:

データテーブル列の複合コンポーネントを作成する方法は?

基本的に、独自のtaglibを試すように指示されましたが、ヘッダーにreRenderを実行するリンクがあることを除いて、これは非常にうまく機能します。このリンクが押されると、MethodNotFoundException がスローされます。

これは私のカスタムタグライブラリです:

<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
    version="2.0">
    <namespace>http://stackoverflowdummy.com/dumb/components</namespace>
    <tag>
        <tag-name>tableHeader</tag-name>
        <source>tags/tableHeader.xhtml</source>
        <attribute>
            <description></description>
            <name>value</name>
        </attribute>
        <attribute>
            <description>The listener that handles sorting</description>
            <name>sortAction</name>
            <method-signature>java.lang.String action()</method-signature>
        </attribute>
        <attribute>
            <description>The property that holds the current id to sort on
            </description>
            <name>sortValue</name>
        </attribute>
        <attribute>
            <description>The component that needs to be updated after changes
            </description>
            <name>reRender</name>
        </attribute>
    </tag>
</facelet-taglib>

メソッドシグネチャなしで試し、「アクション」も削除してみました。私の web.xml には、次のような taglib が含まれています。

<context-param>
    <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
    <param-value>/WEB-INF/cc.taglib.xml</param-value>
</context-param>

「facelets.LIBRARIES」も試してみましたが、違いはありませんでした。

            <h:commandLink value="#{o.label}" action="#{sortAction}" immediate="true" reRender="#{reRender}">
                <f:setPropertyActionListener target="#{sortValue}" value="#{o.column.sortId}" />
            </h:commandLink>

最終用途は次のように定義されます。

sortAction="#{myBean.sort}"

その Bean には、署名 String sort(); で呼び出されるメソッドがあります。定義するだけで、独自のタグの使用をスキップすると、非常にうまく機能します。ただし、アクションメソッドを除くすべてがタグで機能します...

4

1 に答える 1