Метод Image.open использует путь к файлу и режим. Смотрите здесь . Вы должны иметь возможность заменить url на filepath и поместить его в Image.open
pil_image = Image.open(filepath)
Я рекомендовал бы реализовать это как HashTable всей сессии со строковыми ключами, отображающимися на пользовательские объекты FlashItem. FlashItem будет просто содержать объект или представлять в виде строки, Вы храните плюс булево значение, возможно названное IsNew, который должен иметь значение true, когда Вы вставляете новый объект в HashTable.
На каждой странице загружают Вас, затем выполняют итерации HashTable, устанавливают любой IsNew = истинные объекты ко лжи и удаляют любые объекты, где IsNew является уже ложным. Это должно дать Вам работу одинаково функции флэш-памяти Направляющих.
Если Вы не инвестировали огромный объем работы в свое пружинное приложение Java, Вы могли бы посмотреть на рабочие направляющие на jruby. Красота выполнения jRuby на направляющих состоит в том, что можно смешать и соответствовать рубиновым драгоценным камням, и Java освобождает.
Если Вы уже поместили изрядный объем работы в Ваше приложение затем, это больше затем вероятно не опция.
Я сделал только что в весеннем MVC с сеансом соревнования BEAL.
public class FlashImpl implements Flash, Serializable{
private static final long serialVersionUID = 1L;
private static final String ERROR = "error";
private static final String WARNING = "warning";
private static final String NOTICE = "notice";
private String message;
private String klass;
public void message(String klass, String message) {
this.klass = klass;
this.message = message;
}
public void notice(String message) {
this.message(NOTICE, message);
}
public void warning(String message) {
this.message(WARNING, message);
}
public void error(String message) {
this.message(ERROR, message);
}
public boolean isEmptyMessage() {
return message == null;
}
public void clear() {
this.message = null;
this.klass = null;
}
public String getMessage() {
String msg = message;
this.clear();
return msg;
}
public void setMessage(String message) {
this.message = message;
}
public String getKlass() {
return klass;
}
public void setKlass(String klass) {
this.klass = klass;
}}
Хитрость находится в соблюдении сообщения после того, как он был прочитан впервые. Таким образом, он может выжить на перенаправление после поста.
Я предполагаю, что будет только один тип сообщения для запроса!. Если вы не хотите этого, вы можете создать Hashmap, как уже предложено.
Я ввожу этот боб в моем контроллерах (на самом деле я вводим его в базовом контроллере, унаследованном всеми остальными).
В вашем JSP вы должны добавить какой-нибудь код, как это:
<c:if test="${!flash.emptyMessage}" >
<div class="${flash.klass}">${fn:escapeXml(flash.message)}</div>
</c:if>