2014-09-07 3 views
0

У меня возникают некоторые проблемы при отображении сообщений после того, как я успешно выполнил или выполнил какой-либо тип операции CRUD (CREATE, DELETE и т. Д.). Я попытался использовать Redirect Flash Attributes, хотя я не нашел удачи в них, и я не могу получить отображение сообщений вообще. Например, я объявил что-то вроде этого в рамках моего метода контроллера:Spring MVC Redirect Attribute Messages

public String DeleteAction(Model model, Object object, @RequestParam int id, RedirectAttributes attributes) { 
    // Method logic 
    object.delete(id); 
    attributes.addFlashAttribute("success", "Object has been removed successfully."); 
    return "index"; // View resolver redirect 
} 

То есть пример моей функции в одном из моих контроллеров, где я объявляю атрибут вспышки быть переплетены в представлении. Я вызываю атрибут flash как внутри .jsp ${success}, хотя я все еще не могу его отобразить. Есть ли что-то, чего я не вижу, что не позволяет этому работать?

+0

Почему вы не возвращаете «перенаправление:» + «индекс»? Использование атрибута flash как и должно быть. –

+0

Поскольку я думал, что вы можете просто вернуть «вид» и позволить обработчику представления обрабатывать остальные, хотя это может быть проблемой, учитывая, что это не перенаправление, а просто сопоставление с новым представлением. Тем не менее, я попробовал «return» redirect: index «' и он также не работал, поэтому мне все еще остается неясным, почему. Если мне действительно нужно добавить символ «+», верно? – Maff

+0

@Maff ответ отправлен, если это вам поможет –

ответ

2

Специализация интерфейса Model, которую controllers может использовать для выбора атрибутов для сценария переадресации. Поскольку цель добавления redirect attributes очень ясна - то есть для redirect URL.

@RequestMapping(value = "/delete", method = RequestMethod.GET) 
public String DeleteAction(Model model, Object object, @RequestParam int id RedirectAttributes attributes) { 
    object.delete(id); 
    attributes.addFlashAttribute("success", "Object has been removed successfully."); 
    return "redirect:" + "index"; 
} 
+0

Я попробую этот сегмент кода и предоставит вам некоторые отзывы соответственно. Могу ли я условно проверить объект «успех» атрибута flash, используя инструкцию 'c: if' и проверить, является ли оно нулевым? – Maff

+0

@Maff да можно –

+1

подтвердил, что сейчас это работает для меня. Я все еще пытаюсь это сделать, не снабжая символ «+» и просто «возвращать» перенаправление: index »;' – Maff