囧芝麻 2013-08-22
在编码中经常会遇到这样一种情况,
就是在一些操作出错需要把错误信息返回到页面时恰恰却需要Redirect跳转
这时候就会出现我在这里model.addAttribute("error","出错了!")
的值没有了,这种情况怎么做呢,
1.首先我们需要一个enum类用来保存所有错误提示
public enum EnumErrorInfo { ERROR("login-1", "登录错误1!"), ERROR2("login-2", "登录错误2!"); private String desc; private String value; private EnumInfo(String value, String desc) { this.value = value; this.desc = desc; } public String getDesc() { return desc; } /** * @return the value */ public String getValue() { return value; } public static EnumInfo getEnum(String type) { EnumInfo[] status = EnumInfo.values(); for(int i = 0; i < status.length; i++) { if(status[i].getValue().equals(type) ) { return status[i]; } } return null; } }
2.在跳转时
model.addAttribute("code", EnumInfo.ERROR.getValue()); return "redirect:/account/login";
3.在跳转到的方法中获取
public void setAlert(request, m){ String code = request.getParameter("code"); if(code == null || "".equals(code)) return; EnumErrorInfo e = EnumErrorInfo.getEnum(code); if(e != null) model.addAttribute("error", e.getDesc()); }
可以封装成方法调用,应该不止一出使用
4.在页面显示
<c:if test="${error!= null}"> ${error} </c:if>