java - 在Tapestry中将参数从java传递到js

标签 java javascript tapestry

我使用 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/

相关文章:

java - Python 与 org.apache.commons.configuration 等效吗?

java - Jasper Reports 生成空白 pdf

java - 运行 gradle 项目时具有未经批准/未知许可证的文件

javascript - 延迟加载元素 jQuery

javascript - 有没有可能让javascript来截图?

java - 如何查找哪个父对象创建了子对象

java - 使用数据库设置应用程序 - tapestry-hibernate 失败

java - Tapestry 5.4 Beanedit 表单警报

java - Spring从具有另一个签名的方法中驱逐缓存

javascript - ExpressJS 中的路由拒绝上传