6
我從一個使用Tapestry構建的現有webapp開始。將JavaScript添加到Tapestry應用程序的方法是什麼?
我不知道在哪裏把我需要的Javascript。
基本上這個應用程序有一個頁面捕獲數據到一個文本區域,我想包括一個JavaScript庫來處理該文本區域。
什麼是將JavaScript添加到Tapestry應用程序的方法?任何樣品或鏈接將不勝感激。
Chau! :)
我從一個使用Tapestry構建的現有webapp開始。將JavaScript添加到Tapestry應用程序的方法是什麼?
我不知道在哪裏把我需要的Javascript。
基本上這個應用程序有一個頁面捕獲數據到一個文本區域,我想包括一個JavaScript庫來處理該文本區域。
什麼是將JavaScript添加到Tapestry應用程序的方法?任何樣品或鏈接將不勝感激。
Chau! :)
爲了一些客戶端行爲添加到一個組件,通常你mixins
包您的應用程序創建一個component mixin類:
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。
哇!!我會試試看。感謝你的回答。 (我想知道爲什麼我沒有看到你的答案) – OscarRyz 2010-08-26 07:14:51
我想創建一個小的JS腳本,利用我的組件的java類中的變量(在頁面中查找$ string的所有實例並突出顯示它們)。我應該使用第一種方法,然後將JavaScript寫入例如公共類TextHighlighter?或者我應該把它寫入JS文件,包含@IncludeJavaScriptLibrary(「texthighlighter.js」),然後以某種方式將變量從java類傳遞給JS? – Ila 2013-09-24 13:04:07