我使用 Apache Tapestry 作为 Web 应用程序框架。
我的java代码中有变量。页面加载后,我需要在 javascript 中获取此变量的值。
例如java类:
@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中读取它。 但你知道另一种方法吗?
最佳答案
您将需要使用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);
}
}
您的 RoomManagement.js
Tapestry.Initializer.RoomManagement = function (parameters) {
//do whatever you need here
alert('Your contactId: ' + parameters.contactId);
};
关于java - 在Tapestry中将参数从java传递到js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988473/