在我的 JSF 视图范围表单中,我使用 poll 标记打印表单启动后经过的分钟数,如下所示:
<h:outputText id="txt_count" value="You started #{mybean.timeElapsed} minutes ago" />
这就是我的支持 bean 中的内容。pollNumber 只是一个整数。它工作正常并打印经过的分钟数。
public String getTimeElapsed()
{
long diffInMinutes = java.time.Duration.between(startTime, LocalDateTime.now())
.toMinutes();
return String.valueOf(diffInMinutes);
}
public void increment(){
pollNumber++;
}
问题是我正在使用自定义日期转换器来获取格式为 MM/yyyy(java.time.YearMonth)的日期。每 5 秒(轮询间隔)调用年月日期转换器,无论日期字段是否已完全填写。所以前一分钟我很高兴填写我的日期字段,接下来我被重定向到一个令人讨厌的堆栈跟踪:
抱歉,发生错误异常:无法在索引 3 处解析文本“05/____”完整堆栈跟踪:java.time.format.DateTimeParseException:无法在 java.time 的索引 3 处解析文本“05/____”。 format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) 在 java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
如果我删除 p:poll 标签,问题就会消失。这不是严重错误。这很奇怪。任何输入将不胜感激。谢谢!