0

我正在尝试使用 Tapestry4 将我的项目升级到 Tapestry5。我正在寻找一个在 Tapestry5 中使用 JSCookMenu 的组件。

4

1 回答 1

0

你在 Tapestry 4 中使用 JSCookMenu 吗?你到底需要什么?如果只是菜单选项需要在 T5 页面中调用代码的链接,那么您应该将ComponentResources注入到您的页面中,以便您可以创建所需的链接并将它们添加到页面上的 javascript 片段中。您可以使用注入的 RenderSupport 实例在页面的 setupRender() 方法中添加 Javascript 来创建菜单变量和对 cmDraw 的调用,例如:

@Environmental
private RenderSupport renderSupport;
@Inject
private ComponentResources resources;

void setupRender() {
  renderSupport.addScript("var myMenu = [ ['icon', 'title', '%s', 'target', 'desc'], ['icon', 'title', '%s', 'target', 'desc'] ];",
    resources.createEventLink("event1"), resources.createEventLink("event2"));
  renderSupport.addScript("cmDraw('menuID', myMenu, 'hbr', cmThemeOffice);");
}

public void onEvent1() {
  //this method gets called from the first option
}
public void onEvent2() {
  //this method gets called from the second option
}

要在页面中包含 JSCookMenu.js 文件,请在页面类中添加注释:

@IncludeJavaScriptLibrary("JSCookMenu.js")
public class MyPage {...}

JSCookMenu.js 需要作为资产添加到您的 T5 应用程序中。

于 2009-01-22T17:31:45.203 回答