Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
Это произойдет, когда ${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 для его создания.
У меня была такая же проблема. Я смог исправить это, установив язык, прежде чем пытаться отформатировать дату:
<fmt:setLocale value="en_US" />
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" />
Это устранило проблему, но я не знаю почему.