我使用Apache Tapestry作为Web应用程序框架。
我的java代码中有变量。我在页面加载后需要在javascript中使用此变量的值。
例如java class:
@Import(library = "RoomManagement.js")
public final class RoomManagement{
@Property
private long contactId;
}
RoomManagement.js中的和js:
window.onload = function(){
alert(contactId);
}
如何将其直接传递给javascript?
我无法将值传递给js,比如模板,因为它是.js文件而不是.tml。
我可以在页面中添加不可见标记,将值写入此标记并从js中读取。 但你知道另一种方式吗?
答案 0 :(得分:3)
您需要使用JavaScriptSupport
服务。
您的java文件:
@Import(library = "RoomManagement.js")
public final class RoomManagement{
@Inject
private JavaScriptSupport javascriptSupport;
@Property
private long contactId;
@AfterRender
private void setup() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("contactId", contactId);
javascriptSupport.addInitializerCall("RoomManagement",jsonObject);
}
}
Your RoomManagement.js
Tapestry.Initializer.RoomManagement = function (parameters) {
//do whatever you need here
alert('Your contactId: ' + parameters.contactId);
};