`

SpringMVC Redirect 跳转后如何保存 Model中的数据

    博客分类:
  • Java
阅读更多
在编码中经常会遇到这样一种情况,
就是在一些操作出错需要把错误信息返回到页面时恰恰却需要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>
分享到:
评论
2 楼 Mr_lioo 2014-09-18  
1 楼 dbh0512 2013-10-17  
return new ModelAndView(new RedirectView("url",model)

相关推荐

Global site tag (gtag.js) - Google Analytics