30.36. <w:menuBar>

MenuBar是一个容器,里面可以放Menu。

30.36.1. 构件信息

表 30.91. 构件信息

Renderer Typeorg.operamasks.faces.widget.MenuBar
Tag Classorg.operamasks.faces.webapp.widget.UIMenuBarTag
Renderer Typeorg.operamasks.faces.widget.MenuBar
Renderer Class(AJAX)org.operamasks.faces.render.widget.ajax.AjaxMenuBarRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UICommand

+++++org.operamasks.faces.component.widget.menu.base.UIMenuBase

++++++org.operamasks.faces.component.widget.menu.UIMenu

30.36.2. 属性

表 30.92. 属性

action 定义类 javax.faces.component.UICommand
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
特定Action事件激活时调用的方法
actionListener 定义类 javax.faces.component.UICommand
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
特定ActionEvent事件激活时调用的方法
autoExpand 定义类
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
是否自动展开
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
jsvar 定义类 org.operamasks.faces.component.widget.menu.UIMenu
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
客户端脚本使用的javascript变量名,引用脚本中Ext.menu.Menu对象
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
style 定义类 org.operamasks.faces.component.widget.menu.UIMenu
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染时应用到构件的CSS风格,对应于元素的style属性
styleClass 定义类 org.operamasks.faces.component.widget.menu.UIMenu
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
空格分隔的CSS风格类名列表,渲染时作为元素的"class"属性

30.36.3. 构件API

30.36.3.1. UIMenu(menuBar的构件类)

表 30.93. 常用方法

addMenu 方法签名 public void addMenu(UIMenu menu)
参数说明 menu: 要添加的菜单构件。
返回值 无返回值
方法描述 追加一个菜单构件作为当前菜单的子菜单
addMenu 方法签名 public void addMenu(int index, UIMenu menu)
参数说明 index::插入位置。menu:待添加的菜单构件。
返回值 无返回值
方法描述 在指定位置插入一个菜单构件作为当前菜单的子菜单
addMenuItem 方法签名 public void addMenuItem(UIComponent item)
参数说明 item:待添加的子构件。可接受UICommandMenuItem、UICheckMenuItem、UIRadioMenuItem、UILinkMenuItem、UICalendar、UISeparator、HtmlOutputText、HtmlOutputLink、UIChooseSkin等类型的构件。
返回值 无返回值
方法描述 添加一个构件作为当前菜单的子构件。
addMenuItem 方法签名 public void addMenuItem(int index, UIComponent item)
参数说明 index:插入子构件的位置。item:待添加的子构件。
返回值 无返回值
方法描述 在指定位置插入一个构件作为当前菜单的子构件。

30.36.4. 示例

下面例子介绍了w:menuBar的用法,w:menuBar里面可以放一个或者多个w:menu:

<w:menuBar id="mymenu" action="#{MenuBean.menuAction}" autoExpand="false">
    <w:menu label="文件">
        <w:commandMenuItem image="images/new.gif" label="新建" />
        <w:commandMenuItem image="images/open.gif" label="打开..."/>
        <w:commandMenuItem image="images/save.gif" label="保存"/>
        <w:commandMenuItem label="另存为..." disabled="true"/>
        <w:separator/>
        <w:linkMenuItem label="关闭" value="../index.html" onclick="return confirm('Are you sure?')"/>
    </w:menu>
    <w:menu label="编辑">
        <w:commandMenuItem image="images/new.gif" label="撤销" />
        <w:commandMenuItem image="images/new.gif" label="重做" />
    </w:menu>
</w:menuBar>