繁体   English   中英

Primefaces 4.0.16 <p:calendar> 没有显示正确的时间滑块

[英]Primefaces 4.0.16 <p:calendar> Doesn't show proper Time sliders

版本 Primefaces:4.0.16 JSF:2所以我有这个<p:calendar> ,我想在那里选择日期和时间。

<p:calendar widgetVar="fromCal" id="fromDate" locale="#{lsutil:getLocale()}" pattern="#{lsutil:getCalendarDateTimeOnly()}" navigator="true"
                        onfocus="Util.dateMask(this,'#{lsutil:getCalendarDateTimeOnly()}');" value="#{createTestPlanController.model.timeFrom}"
                        required="true" title="#{component.valid ? '' : msg['createTestPlan.testPlanFailedInvalidTimeRange']}" />

正如您所看到的,我在<p:calendar>中的pattern="#{lsutil:getCalendarDateTimeOnly()}"pattern=”MM/dd/yyyy HH:mm” pattern="#{lsutil:getCalendarDateTimeOnly()}"

我可能会补充说,它会在<ui:composition>打开-不知道这是否与它有关?

pattern="#{lsutil:getCalendarDateTimeOnly()}"在.xml文件中调用我的函数:

<function>
     <function-name>getCalendarDateTimeOnly</function-name>
     <function-class>lyngsoe.catellae.infrastructure.CatellaeUtils</function-class>
     <function-signature>java.lang.String getCalendarDateTimeOnly()</function-signature>
</function>  

然后从这里深入到我的.java文件

public static String getCalendarDateTimeOnly(){
    return CatellaeUtils.getCurrentUser().getCalendarDateTimeOnlyString();
}

再次向下钻取到另一个.java文件,在该文件中,我删除日期字符串中EEE的方法即代表星期几的EEE(MON,WED,SAT等)

public String getCalendarDateTimeOnlyString()
{
    String dTFS = this.getDateTimeFormatString();
    String patternRegex = "[a-zA-z][a-zA-z][a-zA-z]\\s";
    try {
        String dateTimeOnlyString = dTFS.replaceFirst(patternRegex,"");
        return dateTimeOnlyString;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;

}  

我正在使用replaceFirst过滤器从EEE dd-MM-yyyy HH:mm:ss转到dd-MM-yyyy HH:mm:ss ,并将其保存在变量dateTimeOnlyString并返回它。 据我在Chrome F12中所看到的, 如果我手动输入,确实需要一些时间。 没有按钮, 52页的Primefaces Doc 4.0中的按钮Timepicker所示


尝试了简单的解决方案

因此,为了争辩,我想尝试一个simpel <p:calendar>看看它是否有效,但没有成功。

<p:calendar id="fromTime" value="#{createTestPlanController.model.timeFrom}" pattern="HH:mm" timeOnly="true"

我在这里得到的是一个字段,第一次重新加载时,它会获得探测器的一天中的时间,但是当我单击它并想要更改时间时,它将打开日历视图。
就像Primefaces Doc 4.0中第44页的顶部所示


现在从Primefaces Doc 4.0中可以阅读的内容上,我正在做它应该做的事情,以便将结果显示在第52页的底部

在当前状态:无法更新我的primefaces版本。

有可能解决方案的问题
Primefaces日历选择器不适用于MMM模式 - 问题在于视图中设置了一些疯狂的语言环境,实际上无法看到解决方案。

因此,对我来说,解决方案是利用inputMask ,然后将其向下拖动,从所选的日期和时间开始制作一个时间戳记,然后保存它。

在我看来,这不是探针解决方案,但它可以完成工作。

如果那里有人,那是一个真正的解决方案,所以我只能使用日历-我很乐意接受建议:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM