Цель: Пользователь загружает изображение, проверяющий проверяет, является ли он файлом изображения, который пользователь загрузил, возвращает сообщение, если это не изображение, если нет является., если утверждение, кажется, никогда не оценивается false
Ошибка: При нажатии кнопки «Загрузить» независимо от того, является ли загруженный файл изображением или нет изображения, сообщение валидатора всегда возвращается.
Площадь фокуса: В классе Validator строка System.out.println(partValueContentType);
написала тип контента на консоль, например. image/jpeg
, но когда он протестирован в заявлении if
, он вообще не оценивает тип содержимого.
String partValueContentType = part.getContentType();
System.out.println(partValueContentType);
if (!partValueContentType.equals("image/jpeg")
|| !partValueContentType.equals("image/jpg")
|| !partValueContentType.equals("image/gif")
|| !partValueContentType.equals("image/png"))
{
FacesMessage msg = new FacesMessage("File is not an image.",
"Acceptable image types (jpeg, jpg, gif, png)");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
Как это вызвано и как я могу его решить?
Возьмите хорошую чашку кофе и смотреть на него AG айн. Заменить каждое отдельное условие на «true» или «false». В конце концов, все в порядке? – BalusC
Для целей отладки укажите фактическое значение 'partValueContentType'. т.е. «FacesMessage msg = new FacesMessage (« Файл не является изображением »), « Приемлемые типы изображений (jpeg, jpg, gif, png), но получили «+ partValueContentType»; ' –
@DilumRanatunga: Вам также нужна хорошая чашка кофе. – BalusC