Попытка конвертировать String в тип & ldquo; java.util.Date & rdquo; - ошибка JSTL fmt [дубликат]

Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:

SqlConnection connection = null;
connection.Open();

Это вызовет ошибку, потому что, пока я объявил переменную «connection», она не указала ни на что. Когда я пытаюсь вызвать член «Open», для его устранения нет ссылки, и он будет вызывать ошибку.

Чтобы избежать этой ошибки:

  1. Всегда инициализируйте свои объекты, прежде чем пытаться что-либо с ними делать.
  2. Если вы не уверены, что объект имеет значение null, проверьте его с помощью object == null.

Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.

6
задан kshtjsnghl 31 May 2011 в 14:24
поделиться

2 ответа

Это произойдет, когда ${proposal.creationDate} фактически вернет String вместо полноправного Date . Исправьте его соответствующим образом.

private Date creationDate;

public Date getCreationDate() {
    return creationDate;
}

Если вы действительно не можете изменить тип для какой-то неочевидной причины, вам нужно сначала проанализировать его с помощью <fmt:parseDate> .

<fmt:parseDate var="realCreationDate" value="${proposal.creationDate}" pattern="EEE MMM dd HH:mm:ss z yyyy" locale="en" />
<fmt:formatDate value="${realCreationDate}" pattern="yyyy-MM-dd HH:mm:ss" />

Но это простой хак.


Не связанный с проблемой, часы должны быть представлены HH не hh. См. Также SimpleDateFormat javadoc . Год 3911 вместо 2011 в распечатке также предполагает, что вы использовали устаревший конструктор / методы f10 для его создания.

1
ответ дан BalusC 26 August 2018 в 20:40
поделиться

У меня была такая же проблема. Я смог исправить это, установив язык, прежде чем пытаться отформатировать дату:

<fmt:setLocale value="en_US" />
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" />

Это устранило проблему, но я не знаю почему.

13
ответ дан evil otto 26 August 2018 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: