0

Apache Tapestry5 で冒険を始めています。テキストフィールドのペアで構成される単純なコンポーネント(テスト用)を作成しようとしています。コンポーネントの名前は「TestComp」です。次の要素があります。

testComp.tml

<t:container 
    xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <p>
        <input t:type="TextField" t:id="testOne" t:value="testOne.input"/><br/>
        <input t:type="TextField" t:id="testTwo" t:value="testTwo.input"/><br/>
    </p>
</t:container>

TestComp.java

public class TestComp {

    private DataContainer testOne;

    private DataContainer testTwo;

    @SetupRender
    public void setup(){
        testOne = new DataContainer();
        testTwo = new DataContainer();
    }

    public String getContentOfTestOne() {
        return testOne.getInput();
    }

    public String getContentOfTestTwo() {
        return testTwo.getInput();
    }

    public DataContainer getTestOne() {
        return testOne;
    }

    public void setTestOne(DataContainer testOne) {
        this.testOne = testOne;
    }

    public DataContainer getTestTwo() {
        return testTwo;
    }

    public void setTestTwo(DataContainer testTwo) {
        this.testTwo = testTwo;
    }
}

そして、index.tml などの他の場所で使用しようとしています。

<form t:type="form" t:id="out">
        <t:testComp />
        <br/><input type="submit" value="Component"/>
</form> 

私が見つけた数十の資料と例によると (正直なところ、私のものと同様のケースではありません)、そのような実装はフォームに testComp 要素を表示する結果になるはずですが、残念ながらボタンの上には何もレンダリングされません (タペストリーはクラッシュしない)。私は何が欠けていますか?そして、TestComp タイプの Index.java プロパティを入れて、それを私の

<t:testComp /> 

id による Index.tml 内 (または、カスタム コンポーネントに実装するためにさらに何かが必要ですか?)

4

1 に答える 1

0

完全な index.tml ファイルを提供しましたか? もしそうなら、タペストリーの名前空間と正しくセットアップされた html ドキュメントがありません。次のことを試してください。

インデックス.tml

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>My page</title>
    </head>
    <body>
        <form t:type="form" t:id="out">
            <div t:id="testComp" />
            <br/><input type="submit" value="Component"/>
        </form>
    </body>
</html>

Index.java では、これを使用してコンポーネントにアクセスできます。

@component(id="testComp")
private TestComp testComp;

これが機能しない場合は、構成またはセットアップに問題がある可能性があり、タペストリーによってまったく処理されない静的 tml ファイルを見ているだけかもしれません。この場合、 「はじめに」ページのステップバイステップ ガイドに従ってください。

于 2013-07-25T07:23:14.850 に答える