我正在使用Spring MVC Web应用程序:Servlet + JSP + Hibernate。这是我CustomerController.java
@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";
}
以下是要显示的CustomerList.jsp
文件中的代码:
...
<%@ 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>
...
我想重定向到/CustomerList
并添加参数error
+ success
。
问题是,当我运行时,它会返回/CustomerList?success=Successed
,并且没有任何内容可以显示默认的客户列表
我经常搜索,但真的不知道怎么做我想要的。感谢大家的阅读和帮助。
答案 0 :(得分:0)
您可以尝试使用RedirectAttributes#addAttribute。
@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";
}
在这种情况下,如果成功,网址将变为/CustomerList?success=Successed
。
您可以使用EL
访问参数值,如下所示:
${param.success} or ${param.error}
您也可以使用RedirectAttributes#addFlashAttribute
。
redirectAttributes.addFlashAttribute("success", "Successed");
然后,您可以直接访问${success}
或${error}
。
答案 1 :(得分:0)
为时已晚,但是如果有人仍然对此感到疑惑-最简单的解决方案是使用重定向并向会话添加属性:
在Servlet中:
req.getSession().setAttribute("<your attribute>");
要重定向到的Servlet:
private void checkMessages(HttpServletRequest request) {
SomeObject result = (SomeObject) request.getSession().getAttribute("<your attribute>");
if (result != null) {
request.setAttribute(result);
request.getSession().removeAttribute("<your attribute>");
}
}
像魅力一样工作!