30.49. <w:radioMenuItem>

RadioMenuItem是一个带Radio按钮的单选风格菜单项,RadioMenuItem用于在菜单里的一组选项中进行唯一性选择。RadioMenuItem必须作为Menu的子构件(w:radioMenuItem必须内嵌在w:menu中)使用,关于更多如何使用Menu的信息,请阅读Menu的构件参考。

30.49.1. 构件信息

表 30.121. 构件信息

Component Typeorg.operamasks.faces.widget.RadioMenuItem
Component Familyjavax.faces.SelectOne
Component Classorg.operamasks.faces.component.widget.menu.UIRadioMenuItem
Tag Classorg.operamasks.faces.webapp.widget.UIRadioMenuItemTag
Renderer Type(DEFAULT)javax.faces.SelectOne
Renderer Type(MENU)org.operamasks.faces.widget.RadioMenuItem
Renderer Class(AJAX)org.operamasks.faces.render.widget.ajax.AjaxRadioMenuItemRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UIOutput

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

++++++javax.faces.component.UISelectOne

+++++++javax.faces.component.html.HtmlSelectOneRadio

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

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

30.49.2. 属性

表 30.122. 属性

activeClass 定义类 org.operamasks.faces.component.widget.menu.UIRadioMenuItem
类型 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.UIRadioMenuItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定构件是否可用
disabledClass 定义类 javax.faces.component.html.HtmlSelectOneRadio
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
不可用状态时的css样式
iconClass 定义类 org.operamasks.faces.component.widget.menu.UIRadioMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
菜单的图标的CSS风格类
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
image 定义类 org.operamasks.faces.component.widget.menu.UIRadioMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
菜单所用的图标
immediate 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
如果该属性设置为true,该构件的校验和转换就会在应用请求值阶段进行,反之,在处理验证阶段执行
onbeforechange 定义类 org.operamasks.faces.component.widget.menu.UIRadioMenuItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件菜单选择被修改之前执行的JavaScript代码
onchange 定义类 javax.faces.component.html.HtmlSelectOneRadio
类型 java.lang.String
是否必须 延时求值
指定构件失去焦点并且它的值已改变时执行的Javascript代码
onclick 定义类 javax.faces.component.html.HtmlSelectOneRadio
类型 java.lang.String
是否必须 延时求值
构件被点击时执行的Javascript代码
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
requiredMessage 定义类 javax.faces.component.UIInput
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
当requried属性为真,构件如果提交了空值导致校验失败时构件的提示信息
style 定义类 javax.faces.component.html.HtmlSelectOneRadio
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染时应用到构件的CSS风格,对应于元素的style属性
styleClass 定义类 javax.faces.component.html.HtmlSelectOneRadio
类型 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.49.3. 构件API

30.49.4. 示例

<w:menu id="format" label="格式"> 
  <w:radioMenuItem value="#{MenuBean.color}" valueChangeListener="#{MenuBean.radioValueChanged}"> 
    <f:selectItems value="#{MenuBean.colors}"/> 
  </w:radioMenuItem> 
</w:menu>

在菜单中显示一组颜色选择的菜单项,当用户改变颜色选择时,通知#{MenuBean.radioValueChanged}对应的方法。它的Managed Bean部分代码如下:

public class MenuBean { 

  .... 

  public enum COLOR { RED, GREEN, BLUE }; 
  private COLOR color = COLOR.RED; 

  public COLOR getColor() { 
    return color; 
  } 

  public void setColor(COLOR color) { 
    this.color = color; 
  } 

  public SelectItem[] getColors() { 
    return new SelectItem[] { 
      new SelectItem(COLOR.RED, "Red"), 
      new SelectItem(COLOR.GREEN, "Green"), 
      new SelectItem(COLOR.BLUE, "Blue") 
    }; 
  }

   .... 
}