在tapestry5中使用JSCookMenu

时间:2009-01-21 09:01:21

标签: tapestry

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

1 个答案:

答案 0 :(得分:0)

你在Tapestry 4中使用JSCookMenu吗?你究竟需要什么?如果它只是菜单选项在T5页面中调用代码所需的链接,那么你应该在页面中注入一个ComponentResources,这样你就可以创建你需要的链接并将它们添加到一个javascript片段上。页。您可以使用注入的RenderSupport实例添加Javascript来创建菜单变量以及在页面的setupRender()方法内调用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应用程序中。