4

我目前无法设置<aui:input>标签的日历日期和语言环境格式:

  • 它仍然显示一个空的非本地化输入模式(mm/dd/yyyy)
  • 单击以展开日历时,即使Date指定了值,所选日期也始终为现在
  • 在日历中选择日期时,输入字段将填充所选日期,但格式错误(仍为 mm/dd/yyyy)

由于我的声誉,我无法上传图片或共享多个链接,因此我将前面提到的这三个案例合并为一张图片

这是我目前在我的 .jsp 文件中所做的:

<%
Calendar calendar = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale());
Date date = new Date(571096800000l); // A random date different than NOW.
calendar.setTime(date);
System.out.println("calendar date = " + calendar.getTime()); // Fri Feb 05 22:00:00 GMT 1988

Format formatter = FastDateFormatFactoryUtil.getDate(themeDisplay.getLocale(), themeDisplay.getTimeZone());
String formattedDate = formatter.format(date);
System.out.println("formatted date = " + formattedDate); // formatted date = 5.02.88
%>

<aui:input type="date" name="test1" value="<%= calendar %>"/>
<aui:input type="date" name="test2" value="<%= calendar.getTime() %>"/>                 
<aui:input type="date" name="test3" value="<%= date %>"/>
<aui:input type="date" name="test4" value="<%= date.getTime() %>"/>
<aui:input type="date" name="test5" value="<%= date %>"/>
<aui:input type="date" name="test6" value="<%= date.getTime() %>"/>
<aui:input type="date" name="test7" value="<%= formattedDate %>"/>

非常感谢您的时间!

4

2 回答 2

5

看来您已经成功地欺骗自己认为 Liferay 中的 AlloyUI 实际上支持 type="date",但它不支持。您在屏幕截图上看到的日历是由 Chrome 提供的,因为 AlloyUI 构造了一个输入 type="date",然后 Chrome 会发挥 HTML5 的魔力并为您提供日期输入。

正确的答案是 AUI 根本不支持 Date 输入,您必须将您的实现切换到其他东西。建议的 liferay-ui:input-date 是一个不错的选择,但如果您更喜欢更好的选择,请尝试使用 jQuery UI 日期选择器,它允许您指定提交给服务器的显示格式和替代格式。

不好的一面是您可能应该实现自己的 taglib 以使其很好地可重用。

于 2014-10-29T10:30:04.430 回答
2

试试下面的代码片段..

<liferay-ui:input-date cssClass="<%= cssClass %>"

dayNullable="<%= dayNullable %>"

            dayParam='<%= fieldParam + "Day" %>'
             dayValue="<%= day %>"
             disabled="<%= disabled %>"
             firstDayOfWeek="<%= firstDayOfWeek %>"
             formName="<%= formName %>"
            imageInputId='<%= fieldParam + "ImageInputId" %>'
            monthNullable="<%= monthNullable %>"
            monthParam='<%= fieldParam + "Month" %>'
            monthValue="<%= month %>"
            yearNullable="<%= yearNullable %>"
            yearParam='<%= fieldParam + "Year" %>'
            yearRangeEnd="<%= yearRangeEnd %>"
            yearRangeStart="<%= yearRangeStart %>"
            yearValue="<%= year %>"
        />

更多信息在这里

于 2014-10-09T10:19:33.063 回答