30.7. <w:checkMenuItem>

CheckMenuItem是一种多选的菜单项,必须作为Menu的子元素才可以使用。

30.7.1. 构件信息

表 30.15. 构件信息

Component Typeorg.operamasks.faces.widget.CheckMenuItem
Component Familyjavax.faces.SelectBoolean
Component Classorg.operamasks.faces.component.widget.menu.UICheckMenuItem
Tag Classorg.operamasks.faces.webapp.widget.UICheckMenuItemTag
Renderer Type(DEFAULT)javax.faces.Checkbox
Renderer Type(MENU)org.operamasks.faces.widget.CheckMenuItem
Renderer Class(AJAX MENU)org.operamasks.faces.render.widget.ajax.AjaxCheckMenuItemRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UIOutput

+++++javax.faces.component.UIInput

++++++javax.faces.component.UISelectBoolean

+++++++javax.faces.component.html.HtmlSelectBooleanCheckbox

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

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

30.7.2. 属性

表 30.16. 属性

activeClass 定义类 org.operamasks.faces.component.widget.menu.UICheckMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件激活状态时的css样式
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
converter 定义类 javax.faces.component.UIOutput
类型 java.lang.String
是否必须 延时求值
构件注册的转换器
converterMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件中值转换失败时,构件的提示信息
disabled 定义类 org.operamasks.faces.component.widget.menu.UICheckMenuItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定构件是否可用
disabledClass 定义类 org.operamasks.faces.component.widget.menu.UICheckMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件不可用状态时的css样式
iconClass 定义类 org.operamasks.faces.component.widget.menu.UICheckMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
菜单项前面的图标的CSS Class类名
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
immediate 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
如果该属性设置为true,该构件的校验和转换就会在应用请求值阶段进行,反之,在处理验证阶段执行
label 定义类 javax.faces.component.html.HtmlSelectBooleanCheckbox
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
指定构件的label
onbeforechange 定义类 org.operamasks.faces.component.widget.menu.UICheckMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件的选择状态改变时执行的JavaScript代码
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
style 定义类 javax.faces.component.html.HtmlSelectBooleanCheckbox
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染时应用到构件的CSS风格,对应于元素的style属性
styleClass 定义类 javax.faces.component.html.HtmlSelectBooleanCheckbox
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
空格分隔的CSS风格类名列表,渲染时作为元素的"class"属性
validator 定义类 javax.faces.component.UIInput
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
指定一个校验器id或用EL表达式指定一个校验方法。引擎使用该校验器对用户输入进行有效性校验
validatorMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
校验失败时的提示信息
value 定义类 javax.faces.component.UIInput
类型 java.lang.String
是否必须 延时求值
构件的当前值
valueChangeListener 定义类 javax.faces.component.UIInput
类型 javax.el.MethodExpression(javax.el.MethodExpression)
是否必须 延时求值
该属性为一个EL表达式(MethodBinding),表示当值改变时响应事件的方法。表达式所指定的方法必须是void valueChange(javax.faces.event.ValueChangeEvent)形式

30.7.3. 构件API

30.7.4. 示例

假设有一个选择文字的菜单,对于文字来说,粗体、斜体和下划线是一种修饰,可以并存,所以选择了CheckMenuItem作为菜单选项,如下的代码,最外面是一个容器w:menuBar标签,w:menuBar里面放了一个w:menu,w:menu里面放了3个菜单项,3个菜单项的"value"属性分别绑定了后台MenuBean的三个属性:"bold","italic"和"underline","valueChangeListener"绑定了后台同样的一个方法"checkValueChanged",当选中某一个菜单项的时候,就执行了"checkValueChanged"方法,然后根据"bold","italic"和"underline"这三个属性的值来构造文字。

<w:menuBar id="mymenu" action="#{MenuBean.menuAction}" autoExpand="false">
  <w:menu id="format" label="文字格式">
    <w:checkMenuItem label="粗体" style="font-weight:bold" value="#{MenuBean.bold}" valueChangeListener="#{MenuBean.checkValueChanged}"/>
    <w:checkMenuItem label="斜体" style="font-style:italic" value="#{MenuBean.italic}" valueChangeListener="#{MenuBean.checkValueChanged}"/>
    <w:checkMenuItem label="下划线" style="text-decoration:underline" value="#{MenuBean.underline}" valueChangeListener="#{MenuBean.checkValueChanged}"/>
  </w:menu>
</w:menuBar>