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

时间:2015-06-30 13:21:26

标签: java xml jsf-2 primefaces xhtml

版本 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=”MM/dd/yyyy HH:mm” pattern="#{lsutil:getCalendarDateTimeOnly()}"

我可以补充说,它会在af <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

尝试了一个简单的解决方案

因此,为了争论,我想尝试一个简单的<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 calendar picker doesn't work with MMM pattern   - 问题是在视图中设置了一些疯狂的语言环境无法真正看到解决方案。

1 个答案:

答案 0 :(得分:0)

所以解决方案,对我来说是使用bundle exec rake assets:precompile,然后将其向下拖动,从所选日期和时间创建时间戳,然后保存。

在我看来,这不是一个成熟的解决方案,但它确实起了作用。

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