DateMenu是一个日期菜单,可以通过菜单来选择一个日期,功能和Calendar相似。
表 30.44. 构件信息
| Component Type | org.operamasks.faces.widget.Calendar |
| Component Family | org.operamasks.faces.widget.Calendar |
| Component Class | org.operamasks.faces.component.widget.UICalendar |
| Tag Class | org.operamasks.faces.webapp.widget.UIDateMenuTag |
| Renderer Type | org.operamasks.faces.widget.Menu |
| Renderer Class(AJAX) | org.operamasks.faces.render.widget.ajax.AjaxDateMenuRenderer |
+java.lang.Object
++javax.faces.component.UIComponent
+++javax.faces.component.UIComponentBase
++++javax.faces.component.UIOutput
+++++javax.faces.component.UIInput
++++++org.operamasks.faces.component.widget.UICalendar
表 30.45. 属性
| 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) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件中值转换失败时,构件的提示信息 | ||||
| id | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。 | ||||
| immediate | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 如果该属性设置为true,该构件的校验和转换就会在应用请求值阶段进行,反之,在处理验证阶段执行 | ||||
| jsvar | 定义类 | |||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 客户端脚本使用的javascript变量名 | ||||
| label | 定义类 | |||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 菜单显示的文本 | ||||
| rendered | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | boolean(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。 | ||||
| required | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否不允许提交空值 | ||||
| requiredMessage | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当requried属性为真,构件如果提交了空值导致校验失败时构件的提示信息 | ||||
| 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)形式 | ||||
以下例子非常简单,来自 bpdemos,在w:menuBar下面就一个菜单,点击菜单的时候,就弹出日历,选择一个日期后,触发w:menuBar的"action"事件。
<w:menuBar id="mymenu" autoExpand="false" action="#{formwidgets.menu.menuBean.menuAction}">
<w:dateMenu label="Dates" id="date" />
</w:menuBar>@ManagedBean(scope=ManagedBeanScope.SESSION)
public class MenuBean
{
......
@ManagedProperty
private Date date = new Date();
public String menuAction(UIComponent item) {
String label = (String) item.getAttributes().get("label");
if (label == null) {
if (item instanceof UIChooseSkin || item instanceof UISelectOne) {
label = ((UIInput) item).getValue().toString();
} else {
label = item.getAttributes().get("value").toString();
}
}
selected = item.getId() + " (" + label + ") selected";
PartialUpdateManager.getInstance().markUpdate("selectedOutput");
return null;
}
......
}