什么';将javascript添加到Tapestry应用程序的方法是什么?

什么';将javascript添加到Tapestry应用程序的方法是什么?,java,javascript,tapestry,web-applications,Java,Javascript,Tapestry,Web Applications,我从使用Tapestry构建的现有webapp开始 我不知道把我需要的Javascript放在哪里 基本上,这个应用程序有一个将数据捕获到文本区域的页面,我想包括一个javascript库来处理该文本区域 向Tapestry应用程序添加javascript的方法是什么?任何样品或链接将不胜感激 周!:) 要向组件添加一些客户端行为,您通常在应用程序的mixins包中创建一个类: package my.tapestry.basepackage.mixins; public class TextA

我从使用Tapestry构建的现有webapp开始

我不知道把我需要的Javascript放在哪里

基本上,这个应用程序有一个将数据捕获到文本区域的页面,我想包括一个javascript库来处理该文本区域

向Tapestry应用程序添加javascript的方法是什么?任何样品或链接将不胜感激


周!:)

要向组件添加一些客户端行为,您通常在应用程序的
mixins
包中创建一个类:

package my.tapestry.basepackage.mixins;

public class TextAreaResizer {

}
在组件模板中,将mixin添加到文本区域,如下所示:

<textarea t:type="TextArea" t:value="..." t:mixins="TextAreaResizer" />
@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {

}
@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());
    }

}
如果您需要运行一些初始化代码,可以通过服务完成,如下所示:

<textarea t:type="TextArea" t:value="..." t:mixins="TextAreaResizer" />
@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {

}
@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());
    }

}
在本例中,我还将文本字段组件注入到mixin类中,因为我需要它的客户机ID


还可以查看。

Wow!!。。我试试看。谢谢你的回答。(我想知道为什么我以前没有看到您的答案)我正在尝试创建一个小JS脚本,它使用我组件的java类中的变量(在页面中找到$string的所有实例并突出显示它们)。我是否应该使用第一种方法,然后将JavaScript写入例如公共类TextHighlighter?或者我应该将其写入JS文件,包括@IncludeJavaScriptLibrary(“texthighlighter.JS”),然后以某种方式将变量从java类传递给JS?