什么';将javascript添加到Tapestry应用程序的方法是什么?
我从使用Tapestry构建的现有webapp开始 我不知道把我需要的Javascript放在哪里 基本上,这个应用程序有一个将数据捕获到文本区域的页面,我想包括一个javascript库来处理该文本区域 向Tapestry应用程序添加javascript的方法是什么?任何样品或链接将不胜感激什么';将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
周!:) 要向组件添加一些客户端行为,您通常在应用程序的
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?