2017-12-05 3 views
1

Ich benutze Spring MVC Web-App: Servlet + JSP + Hibernate. Dies ist ein Teil von meinem CustomerController.javaServlet-Controller - Redirect mit Parametern

@RequestMapping(value="/CustomerList", method = RequestMethod.GET) 
public ModelAndView customerList() { 
    ModelAndView model = new ModelAndView(); 
    model.setViewName("Customer.List"); // for Tiles View 
    model.addObject("listCustomer", DAO_Customer.getListCustomer()); 
    return model; 
} 

@RequestMapping(value="/Customer/{id}/Delete", method = RequestMethod.GET) 
public String deleteCustomer(@PathVariable("id") int id, Model model) { 
    boolean isSuccess = DAO_Customer.deleteCustomer(id); 
    if (!isSuccess) { 
     model.addAttribute("error", "Failed"); 
    } 
    model.addAttribute("success", "Successed"); 

    return "redirect:/CustomerList"; 
} 

und hier ist der Code in CustomerList.jsp Datei angezeigt werden soll:

... 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<c:if test="${not empty error}"> 
    <p>${error}</p> 
</c:if> 
<c:if test="${not empty success}"> 
    <p>${success}</p> 
</c:if> 
... 

ich /CustomerList umleiten möchten und umfassen Parameter error + success.
Das Problem ist, wenn ich renne, gibt es /CustomerList?success=Successed zurück und nichts wird erwartet, die Standard-Kundenliste

Ich suche viel, aber wirklich nicht wissen, was ich tun soll. Danke allen für das Lesen und Hilfe.

Antwort

0

Sie können mit RedirectAttributes#addAttribute versuchen.

@RequestMapping(value="/Customer/{id}/Delete", method = RequestMethod.GET) 
public String deleteCustomer(@PathVariable("id") int id, RedirectAttributes redirectAttributes) { 
    boolean isSuccess = DAO_Customer.deleteCustomer(id); 
    if (!isSuccess) { 
    redirectAttributes.addAttribute("error", "Failed"); 
    } else{ //also required 
    redirectAttributes.addAttribute("success", "Successed"); 
    } 
    return "redirect:/CustomerList"; 
} 

In diesem Fall wird die URL bei Erfolg in /CustomerList?success=Successed umgewandelt.

Und Sie können param Wert mit EL Zugriff wie folgt:

${param.success} or ${param.error} 

Sie können auch RedirectAttributes#addFlashAttribute verwenden.

redirectAttributes.addFlashAttribute("success", "Successed"); 

Dann können Sie direkt als ${success} oder ${error} zugreifen.

+0

Super! Es hat so perfekt mit mir funktioniert! Danke dir so sehr <3 – huudunghcmus