在
编码中经常会遇到这样一种情况,
就是在一些操作出错需要把
错误信息返回到页面时恰恰却需要Redirect跳转
这时候就会出现我在这里
class="java">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>