7

Tapestry で構築された既存の Web アプリケーションから始めています。

必要な Javascript をどこに置くべきかわかりません。

基本的に、このアプリケーションにはテキスト領域にデータをキャプチャする単一のページがあり、そのテキスト領域で何かを行うための JavaScript ライブラリを含めたいと考えています。

タペストリー アプリに JavaScript を追加する方法は何ですか? サンプルまたはリンクは大歓迎です。

チャウ!:)

4

1 に答える 1

4

クライアント側の動作をコンポーネントに追加するには、通常、アプリのパッケージにコンポーネント mixinクラスを作成します。mixins

package my.tapestry.basepackage.mixins;

public class TextAreaResizer {

}

コンポーネント テンプレートで、次のように mixin をテキスト領域に追加します。

<textarea t:type="TextArea" t:value="..." t:mixins="TextAreaResizer" />

JS ライブラリをページにロードするには、次のように@IncludeJavaScriptLibraryアノテーションを mixin で使用できます。

@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {

}

初期化コードを実行する必要がある場合は、次のようにRenderSupportサービスを介して実行されます。

@IncludeStylesheet("context:textarearesizer/css/textarearesizer.css")
@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {

    @Inject
    private RenderSupport renderSupport;

    @InjectContainer
    private TextArea textArea;

    @AfterRender
    void addScript() {
        this.renderSupport.addScript(
             "new TextAreaResizer('%s');", this.textArea.getClientId());
    }

}

この場合、クライアント ID が必要なため、テキスト フィールド コンポーネントも mixin クラスに挿入しました。

また、T5 docsの AJAX & Javascript セクションもチェックしてください。

于 2010-08-20T07:48:15.803 に答える