版本
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
现在我可以在Primefaces Doc 4.0中阅读,我正在做我应该做的事情,以便在第52页的结尾处显示结果
当前状态:无法更新我的primefaces版本。
有可能解决方案的问题
Primefaces calendar picker doesn't work with MMM pattern
- 问题是在视图中设置了一些疯狂的语言环境无法真正看到解决方案。
答案 0 :(得分:0)
所以解决方案,对我来说是使用bundle exec rake assets:precompile
,然后将其向下拖动,从所选日期和时间创建时间戳,然后保存。
在我看来,这不是一个成熟的解决方案,但它确实起了作用。
如果那里有人,那就知道一个真正的解决方案,所以我只能使用日历 - 我更乐意接受建议:)