1. 创建表Calendar
CREATE TABLE CALENDAR
(
ACTIVITY_ID VARCHAR2(20) NOT NULL
, PROVIDER VARCHAR2(20) NOT NULL
, START_DATE DATE NOT NULL
, END_DATE DATE NOT NULL
, TITLE VARCHAR2(200) NOT NULL
, CONSTRAINT CALENDAR_PK PRIMARY KEY
(
ACTIVITY_ID
)
ENABLE
);
注意这里Start_Date和End_Date是Date类型。
2. 创建应用,使用ADF BC生成模型层
注意到EO和VO的StartDate和EndDate的数据类型都是Timestamp,看来ADF BC把Date类型的表字段默认使用Timestamp数据对象来表示。
3. 创建页面,拖放DataControl生成InputDate组件
4. 运行效果
(1)默认效果,注意没有时间项可以选择。
(2)在EO上设置日期的格式
Format Type: Simple Date。
Format: yyyy-MM-dd HH:mm:ss。
怀疑是一个Bug。
于是把Calendar表Start_Date字段类型改为Timestamp。
再次运行,发现时间也保存到表了。
Project 下载:ADF_InputDate.7z
参考文献:
1. https://forums.oracle.com/forums/thread.jspa?threadID=1074781
2. http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_convertDateTime.html
3. http://dkleppinger.blogspot.jp/2011/09/how-to-ignore-time-component-of-date.html
4. http://maping930883.blogspot.jp/2012/08/adf148table-date.html
5. http://jobinesh.blogspot.jp/2011/08/what-you-may-need-to-know-about-data.html
6. http://oracleseeker.com/2009/12/02/adf_history_column_history_type/
7. https://cn.forums.oracle.com/forums/thread.jspa?threadID=1074781
8. https://blogs.oracle.com/shay/entry/a_timehour_selector_in_adf_fac
9. http://jdevadf.oracle.com/adf-richclient-demo/faces/components/inputDate.jspx
没有评论:
发表评论