您的位置:首页 > Web前端 > JavaScript

JSF动态生成菜单

2011-08-16 19:57 375 查看
使用JSF中的<ig:Sidebar></ig:Sidebar>实现动态加载菜单,其中bar.getChildren().add(aSidebarGroup);是实现动态加载首节点,HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

aSidebarGroup.setText(boardName);

aSidebarGroup.setExpanded(true);

aSidebarGroup.setId(viewRoot.createUniqueId());实现加载该节点下的子节点,非常方便。

private Sidebar buildSideBar(Sidebar bar)

{

boolean isInitialised = bar.getAttributes().get("IS_INITIALISED")!=null;

if (!isInitialised) {

// Get a reference to the JSF Application,

// we need it to create value bindings later-on

Application application = FacesContext.getCurrentInstance().getApplication();

UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();

/* Create Infragistics SidebarGroup */

// Set the Sidebar's width and height

bar.getAttributes().put("style","width: 155px; height: 590px;");

// Create SidebarGroup

List list = this.getBoardNameForMenu();

for(int i = 0 ;i<list.size();i++)

{

Object[] row = (Object[])list.get(i);

//Object[] row = (Object[])list.listIterator().next();

String boardId = String.valueOf(row[0]);

String boardName = String.valueOf(row[1]);

String parentId = String.valueOf(row[2]);

HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

aSidebarGroup.setText(boardName);

aSidebarGroup.setExpanded(true);

aSidebarGroup.setId(viewRoot.createUniqueId());

// Add the newly created SidebarGroup to the Sidebar's children list

bar.getChildren().add(aSidebarGroup);

List ls = this.getBoardNameForMenuBar(Integer.parseInt(boardId));

if(ls.size() != 0)

{

for(int j=0;j<ls.size();j++)

{

Object[] row1 = (Object[])ls.get(j);

String boardid = String.valueOf(row1[0]);

String boardname = String.valueOf(row1[1]);

//HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

HtmlLink aLink1 = (HtmlLink)application.createComponent(HtmlLink.COMPONENT_TYPE);

aLink1.setId(viewRoot.createUniqueId());

//aSidebarGroup.setText(sidebarGroupNameStr);

//aSidebarGroup.setExpanded(true);

//aSidebarGroup.setId(viewRoot.createUniqueId());

//aLink1.setId(parentId);

aLink1.setUrl("/pages/bbs/visitor/topic/topicforboard.jsf?boardid="+boardid+"");

aLink1.setValue(boardname);

aSidebarGroup.getChildren().add(aLink1);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: